目录
贪心算法(Greedy Algorithm)是一种基于贪心策略的算法设计方法,它在每一步选择中都采取当前状态下最优的选择,以期望达到全局最优解。贪心算法通常适用于那些具有最优子结构性质的问题,即问题的最优解可以通过子问题的最优解来构造。
贪心算法的基本思想可以简单概括为:
-
选择策略:在每一步,从所有可选的选择中选择当前看起来最优的那个。
-
局部最优:通过选择局部最优解来构建全局最优解。
-
无后效性:每一步的选择只依赖于当前状态,不受之后的影响。
尽管贪心算法在许多情况下能够得到高效的解决方案,但它并不适用于所有问题。因为它没有考虑全局的状态,有时可能会导致得到次优解或者根本无法得到解。
案例一:找零钱
问题:假设你是一个收银员,你需要找给顾客一定数量的零钱。你手上有一些面额不同的硬币(比如1元、5元、10元、20元、50元)。目标是找给顾客最少数量的硬币。
方法:
-
优先使用大面额的硬币。
-
如果顾客需要的金额超过当前最大面额的硬币,就使用一个最大面额的硬币,然后继续往下找零。
-
重复上述步骤,直到找完所有需要的零钱。
def give_change(amount, coins):
coins.

最低0.47元/天 解锁文章
906

被折叠的 条评论
为什么被折叠?



