贪心算法(一):活动安排问题、背包问题、最优装载问题

贪心算法:
贪心算法都可以改写成为动态规划算法
贪心算法(一):活动安排问题、背包问题、最优装载问题

一、活动安排问题

先看看找零钱的问题:

贪心算法(一):活动安排问题、背包问题、最优装载问题
贪心算法(一):活动安排问题、背包问题、最优装载问题
比如说进程使用单核cpu,

贪心算法(一):活动安排问题、背包问题、最优装载问题
求一个最优安排问题:
贪心算法(一):活动安排问题、背包问题、最优装载问题
贪心算法的策略选择:
结束时间早的优先选择,结束时间早,给后面任务留出来的时间更多啊。
贪心算法(一):活动安排问题、背包问题、最优装载问题

贪心算法(一):活动安排问题、背包问题、最优装载问题
活动安排问题的选择:
每次选择最早结束的活动
贪心算法(一):活动安排问题、背包问题、最优装载问题
第一个活动必须选择,因为数组是按照结束时间的递增排序的:
贪心算法(一):活动安排问题、背包问题、最优装载问题
贪心算法必须进行证明:数学归纳法
贪心算法(一):活动安排问题、背包问题、最优装载问题
证明:
贪心算法(一):活动安排问题、背包问题、最优装载问题
贪心算法(一):活动安排问题、背包问题、最优装载问题

贪心算法(一):活动安排问题、背包问题、最优装载问题
贪心算法(一):活动安排问题、背包问题、最优装载问题
举例说明:
但是不可以求01背包问题
贪心算法(一):活动安排问题、背包问题、最优装载问题
但是可以求解背包问题:
贪心算法(一):活动安排问题、背包问题、最优装载问题

贪心算法(一):活动安排问题、背包问题、最优装载问题
求单位下的价值
贪心算法(一):活动安排问题、背包问题、最优装载问题

二、最优装载问题

贪心算法(一):活动安排问题、背包问题、最优装载问题

最优装载
贪心算法(一):活动安排问题、背包问题、最优装载问题
动态规划是 nlogn
贪心算法(一):活动安排问题、背包问题、最优装载问题

复杂度nlogn
贪心算法(一):活动安排问题、背包问题、最优装载问题