算法第四章作业

贪心策略:将所有区间按照右端点从小到大排序,如果右端点相同,则按照左端点从小到大排序。从排序后的第一个区间开始,在其右端点放置一个点,然后跳过所有包含该点的区间,继续处理剩余区间中右端点最小的区间,重复上述过程,直到所有区间都被覆盖。
证明:每次都选最早结束的区间,在它结束的位置放点,这样能覆盖尽可能多的后续区间,而且不会错过最优解。
时间复杂度:1.排序:使用快速排序或归并排序,时间复杂度为 O(nlogn)
2.遍历选点:仅需一次线性扫描,时间复杂度为 O(n)。
综上,算法总时间复杂度为 O(nlogn)

总之贪心算法是一种在每一步选择中都采取当前状态下最优(即局部最优)的选择,从而希望导致全局最优解的算法策略。解决区间选点问题的最好办法就是每次都选最早要结束的区间,在它结束的位置放置点。这样既保证了该区间被覆盖,又能最大限度地覆盖其他区间。

posted @ 2025-12-21 16:01  LK&  阅读(2)  评论(0)    收藏  举报