<? $a = 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($a,33);
二分法算法PHP实现二分法查找算法