https://blog.csdn.net/li__ly/article/details/89058593
贪心算法的定义
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,他所做出的是在某种意义上的局部最优解。
贪心算法解决问题
(1) 推石头问题
你有n堆石头质量分别为W1,W2,W3…Wn.(n<=100000)现在需要你将两堆石头合并,问一共所用力量最小是多少?
例如:
n=4;
3,1,7,5;
解题思路:每次挑重量最少的两堆石头,直到所有石头挑完。
如例题,先将三堆石头按照重量从小到大排序为:1,3,5,7。第一次所用最小力量为1+3=4;然后将4,5,7按从小到大排序,第二次所用最小力量为4+5=9;然后将9,7按从小到大排序,为7,9,第三次所用最小力量为7+9=16;所以一共所用最小力量:4+9+16=29.
(2) 最小生成树问题(单源路径)
Dijkstra算法
https://www.bilibili.com/video/av36886088/?spm_id_from=333.788.videocard.0(B站)
按路径长度递增次序产生最短路径
(3) 活动安排问题
https://blog.csdn.net/liufeng_king/article/details/8709005