贪心算法

37 阅读1分钟

1、算法原理:只看眼前最优,积累最终结果

举例子:商家要给你找18块钱,他肯定先拿一张10块的,再拿一张5块的,最后拿三张1块的,而不是一张张1块地数18张。核心就是:每一步都做出当前情况下最有利的选择,不考虑未来可能的变化,最后把这些“小最优”拼起来,形成一个整体的解决方案。手里的购物袋最多能装5公斤东西,现在有大米(3公斤,价值10元)、面粉(2公斤,价值8元)、小米(1公斤,价值5元),怎么装能让袋子里东西的价值最高?贪心算法会先选价值“性价比”最高的——面粉每公斤4元,比大米(约3.3元/公斤)和小米(5元/公斤)里,先拿面粉(2公斤,8元),剩下3公斤空间,再拿大米(3公斤,10元),总共价值18元,这就是当下每一步选最优的结果。不过要注意,贪心算法不是所有情况都能拿到“绝对最优”,但大多时候能拿到“比较好”的结果,而且特别省事。

2、特点分析

优点非常突出:一是速度快,每一步只做简单的判断,不用考虑所有可能的情况,计算效率特别高;二是逻辑简单,容易理解和实现,不管是编程还是日常决策,都能快速上手;三是实用性强,在很多场景下都能给出满足需求的解决方案,不用追求绝对最优而花费大量时间。