每周算法-PHP实现二分法查找算法
通知:目前由于业务繁忙,发现每日算法是不能够满足需求的,所以更改为每周一个算法学习吧,这样一周了解一个算法,把它吃透即可。暂定每周日。发帖声明:菜鸟出学算法,和算法爱好者交流一下,有问题和建议都可以交流,互相学习呀。{:301_1000:}
【每周算法-每周算法-PHP实现二分法查找算法】
<?php// 测试数组
$testArray = array(1,2,33,24,15,16,7,8);
function find2($a,$findValue){
/**
* @name 二分法查找算法
* @AuThor 倾情
* @Param $a:传递的数组,$findVlaue:要查找的数值
* @Return true找到,false没有找到
*/
sort($a);
$heigh = count((array)$a)-1;
$low = 0;
while ($heigh>=$low) {
$mid = round(($heigh+$low)/2);
echo "查找".$a[$mid].PHP_EOL;
if($findValue>$a[$mid]){
$low = $mid+1;
}elseif ($findValue<$a[$mid]) {
$heigh = $mid-1;
}else{
return true;
}
}
return false;
}
// 排序后的数组1 2 7 8 15 16 24 33
echo find2($testArray,33);
复杂的算法看不懂,简单的不想看 不错,不错,这种方式既能学习算法,也能巩固php基础知识,还有一些应用上的细节,学习了
谢谢 学习算法,从开始到放弃,直接放弃,从我做起。 复杂的算法完全看不懂,还是先从简开始吧
页:
[1]