贪心算法:活动选择问题
算法设计的五大主要方法:分治、贪心、DP、分支限界、回法。。。在网上就是解决NP的近似算法
贪心算法和动态规划算法一般都用于求解最优化问题
在约束条件之下求解最优化问题
贪心法要证明:但是一般你不会证明
比如说背包问题,选择单位价值最大的。01背包只能用DP了
每一步都选择最优的:满足两个要求
最优子结构:
程序实例:
首先解决方案设置为空集,然后遍历n次,每一次都选择最优秀的解,看是否满足约束,满足的话直接就加进来
几种能想到的方法:
最后我们选择时间结束早的优先,但是我们要对这三种方法进行证明
贪心法证明方案不可行,用反证法,证明可行,得用归纳法
贪心算法:对结束时间非递减排序,结束时间已经排序好了,第一个活动要选择,然后约束条件判断
贪心算法需要归纳证明:
k=1的时候正确,假设k=n的时候正确,证明n+1的时候正确