算法第四章作业
一、 贪心策略
排序:把所有区间按右端点从小到大排列。
选点:先选第一个区间的右端点作为第一个点。
遍历:依次看后面的区间,如果当前区间的左端点超过已选的点,就选这个区间的右端点作为新的点,重复这个过程。
二、 贪心选择性质证明
假设最优解的第一个点是 x,贪心选的第一个点是 y(y 是第一个区间的右端点)。因为区间按右端点排过序,所以 y≤x,且 y 能覆盖 x 覆盖的所有区间。用 y 替换 x 后,新的解依然是最优解,说明该策略满足贪心选择性质。
三、 时间复杂度
排序区间的时间是O(n log n);
遍历选点的时间是O(n);
整体时间复杂度为O(n log n)。
对贪心算法的理解
核心逻辑:每一步都选当前看起来最好的选项,通过一系列局部最优选择,最终得到全局最优解。
适用条件:必须同时满足两个条件:
贪心选择性质:局部最优选择能推导出全局最优解;
最优子结构:问题的最优解包含它子问题的最优解。
特点:
优势:代码简单,运行效率高,时间复杂度通常是线性或线性对数级。
局限性:不是所有问题都适用,比如 “0-1 背包” 问题就不适用,仅能用于满足上述两个条件的问题,且需要证明其正确性。

浙公网安备 33010602011771号