通知:目前由于业务繁忙,发现每日算法是不能够满足需求的,所以更改为每周一个算法学习吧,这样一周了解一个算法,把它吃透即可。暂定每周日。
发帖声明:菜鸟出学算法,和算法爱好者交流一下,有问题和建议都可以交流,互相学习呀。
【每周算法-每周算法-PHP实现二分法查找算法】
[PHP] 纯文本查看 复制代码 <?php// 测试数组
$testArray = array(1,2,33,24,15,16,7,8);
function find2($a,$findValue){
/**
* [url=home.php?mod=space&uid=170990]@name[/url] 二分法查找算法
* [url=home.php?mod=space&uid=686208]@AuThor[/url] 倾情
* [url=home.php?mod=space&uid=952169]@Param[/url] $a:传递的数组,$findVlaue:要查找的数值
* [url=home.php?mod=space&uid=155549]@Return[/url] 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);
|