视频字幕
贪心算法是一种简单而直观的算法策略。它的核心思想是在每一步选择中,都采取当前状态下看起来最好的选择,希望通过一系列局部最优选择最终达到全局最优解。就像这个例子中,我们总是选择当前可用选项中数值最大的那个,这就是贪心选择的体现。
贪心算法有四个标准的执行步骤。首先建立数学模型,明确问题的目标和约束条件。然后把求解过程分解成若干个步骤,每个步骤都有明确的选择标准。接下来在每一步都应用贪心原则,选择当前状态下的最优解。最后将所有局部最优解合成为问题的最终解。这个流程确保了算法的系统性和可操作性。
找零钱问题是贪心算法的经典应用。假设我们有1元、5角、1角面额的硬币,需要找零6角7分。贪心策略是优先选择最大面额的硬币。首先选择5角硬币1个,剩余1角7分。然后选择1角硬币1个,剩余7分。最后选择7个1分硬币。总共使用9个硬币完成找零,这就是贪心算法得到的解。
活动选择问题是另一个经典的贪心算法应用。我们需要在一个会议室中安排最多的不冲突活动。有5个活动,每个都有开始和结束时间。贪心策略是按结束时间排序,然后依次选择不冲突的活动。首先选择最早结束的活动A,然后选择与A不冲突且最早结束的活动C,最后选择活动E。活动B和D因为时间冲突被排除。最终选中3个活动,这就是贪心算法的最优解。
贪心算法有明显的优缺点。优点包括算法简单易懂,实现容易,时间复杂度通常较低,执行效率高。但缺点也很明显,不能保证得到全局最优解,适用范围有限,只有满足贪心选择性质的问题才能使用。与动态规划相比,贪心算法速度更快但可能得到次优解。与暴力搜索相比,贪心算法效率高但不保证最优。因此选择算法时需要根据具体问题的特点和要求来决定。