**
PHP之贪心算法小例子
**
贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解 。
贪心算法不是对所有问题都能得到整体最优解,关键是贪心策略的选择
举个例子:
问题: 小朋友分糖果,这时候有5个糖果还有6个小朋友,不同的小朋友对糖果的需求不同,糖果是大小不同,这时候需要找一个最优的选择,吧有限的糖果尽量分给更多的小朋友。
那么现在已知的参数下图表示,小朋友上方数字是满足需求的大小,糖果下方数字则为糖果的大小。
怎么吧糖果分给更多的小朋友呢,这时候有个规则一个小朋友只能拿到一个糖,而一个糖果被分给小朋友之后则不能再使用,而且糖果的大小必须大于小朋友的需求,否则就无法满足,并且不可以用多个糖果分给一个小朋友看下图
根据实际的需求来做算法首先要理解思路,可以先吧糖果大小和小朋友所需做个排序,从小到大来进行排序,如果第一个糖果也就是最小的糖果无法满足第一个小朋友,则肯定不能满足比第一个小朋友需求量还大的小朋友,所以此糖果废弃去比较下一个糖果。
排序完成后思路瞬间明确那么可以搞代码了!开心时刻----
/**
* Notes: 贪心算法
* Author: 白猫!
* DateTime: 2021/3/12 11:08
* @param $child_array 孩子需求
* @param $candy_array 糖果需求
* return $child 满足孩子个数
*/
public