贪心算法(一):活动安排问题、背包问题、最优装载问题
贪心算法:
贪心算法都可以改写成为动态规划算法
一、活动安排问题
先看看找零钱的问题:
比如说进程使用单核cpu,
求一个最优安排问题:
贪心算法的策略选择:
结束时间早的优先选择,结束时间早,给后面任务留出来的时间更多啊。
活动安排问题的选择:
每次选择最早结束的活动
第一个活动必须选择,因为数组是按照结束时间的递增排序的:
贪心算法必须进行证明:数学归纳法
证明:
举例说明:
但是不可以求01背包问题
但是可以求解背包问题:
求单位下的价值
二、最优装载问题
最优装载
动态规划是 nlogn
复杂度nlogn