PHP实现贪婪算法的一个实例
本文介绍了PHP实现的贪婪算法,供大家参考,如下:背景:贪心算法和数据结构知识库算法可以看作是我们生命中最接近的算法。人总是贪婪的,所以本算法的设计是很有人情味的。原因是,人们用贪婪算法,有意或无意地在他们的生活中去解决问题。最常见的是变化的,每个人都不知道如何改变,但在所有的钱就够了,每个人都会发现同样的组合得到需要钱事实上,它是一个贪心算法。
设计思路:贪婪算法的思想可以从两个方面,即理解、直观和数学。贪心算法直观的理解是解决问题的最快途径。这是一个主要的目标,例如,例如,如果你正在寻找一个改变,第一个6.6元。要5元,因为它可以使你的钱增长最快。如果人民币6元面额的,你会选择6元而采取其他两个6元;贪婪算法的数学理解时,对当前最优解的判断为目标,最速下降方法类似于优化。这种方法的优点是,解决问题的速度非常快,这是基本上一次完成一次。
算法缺陷:贪婪算法本身存在着致命的缺陷,正如人们不能过于贪婪,这使得它的应用背景受到很多限制,因为算法是局部最优解,不考虑未来的问题,它就像一个自私的人。虽然在短时间内可以获得一些好处,但是很长一段时间内很难取得很大的成功,当然,社会很复杂,可能有人会自私,生活得很好,这体现在算法中。在某些情况下,贪心算法可以得到最优解,有利于算法设计。
*
*贪婪算法
* $ arr阵列处理
*单位容量
* /
功能贪婪($ ARR,$卷){
元=数组();
boxnum = 0美元;
Num =数美元($ ARR);
($ i = 0;$ i $;$;$ + +){
boxcode美元=真;
(J = 0;对美元美元美元,<< boxnum;j++){
如果($ ARR { $我} + { } { $盒J V } < = $卷){
{ } { $盒J V } = {我} ARR美元美元;
{ } { $盒J k } { } = $我;
boxcode美元= false;
打破;
}
}
如果($ boxcode){
{ } { boxnum美元美元箱V } = {我} ARR美元美元;
{ } {美元美元箱boxnum k } { } = $我;
boxnum美元+ +;
}
}
返回$框;
}
关于PHP相关内容的更多读者感兴趣的读者可以看到特别站:PHP数据结构和算法教程
希望本文能对PHP程序设计有所帮助。