从零开始学算法:基于Python
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1.2 过度贪心——赔了夫人又折兵

适当的贪心,成绩会越来越好,女生会变得越来越漂亮,但是过度贪心,反而会适得其反,生活中有很多因为过度贪心造成悲剧的例子,比如,为了“贪心”,要求学生必须考到班级第一名,给学生身心造成了很大压力;为了“贪心”,女生过度减肥给自己的身体造成了无法挽回的伤害。古人云:“日中则昃,月满则亏”,说的就是这个道理。

因为贪心考虑的是局部最优,在每一阶段中构造一个最优解,我们要按照某一准则做出当前阶段的最好决定,某一阶段所做的决定不可以在随后的阶段中更改,即我们常说的没有“后悔药”,一旦做出选择,就不可以反悔。所以这个选择对于贪心算法是至关重要的,在贪心算法中用来作为贪心决定的策略称为贪心策略。例如,吃苹果的时候,如果认为越大的苹果越好吃,那么我们的贪心策略就是每次选择最大的;如果认为越小的苹果越好吃,那么我们的贪心策略就是每次选择最小的,求解问题不同,贪心策略也会不同,贪心策略的选择会直接影响贪心算法的好坏和正确性。