贪心算法的特点

来源:互联网 发布:linux获取电池电量 编辑:程序博客网 时间:2024/06/06 08:41

这是一篇概括性,事理性说明文。
贪心算法指的是为了达到全局上的最好结果,贪婪地选择局部上的最好结果,因为贪心,所以这个算法有时是错误的,所以使用他,大多在某些特殊的,可以证明贪心算法是正确的问题上。

如:Saruman’s Army POJ - 3069 链接

题目意思是有一排士兵,给出他们的位置,而一个士兵只能管 R 距离内的士兵,至少要多少士兵来管理才能管到所有士兵

贪心算法要考虑局部状况,特别是特殊的状况。
这题考虑最左边的士兵。
他明显只能被他或他右边的士兵管。
如果管他的士兵越靠右,管他的士兵能管的范围就越大。换句话讲,在能管到最左边的士兵的前提下,选的管理者多靠右也不会使情况变差,反而可能更好,所以就贪心的选择能管到最左边的士兵的最右边的士兵。(有点绕)
选择了第一个管理者后,没被管理到的士兵中又会有最左边的士兵,按照一样的方法处理,最终将所有士兵都处理完。

原创粉丝点击