二分查找PHP實現
<?php /**二分查找:查找一個值在數組中的位置
- @$arr:操作的數組,前提是按順序排列
- @$val:查找的值
- @$low:查找的起始位置,默認從數組的第一個數找起
- @hight:查找的結束位置
**/
function binarySearch($arr, $val, $hight, $low=0){
while($low <= $hight){
} return -1; } header('Content-Type:text/html; charset=utf-8');$mid = ceil($low + ($hight - $low) / 2); if($arr[$mid] == $val){ return $mid; }elseif($arr[$mid] > $val){ $hight = $mid -1; }else{ $low = $mid +1; }
//產生一個數組 $arr = range(0,20); echo '<pre>'; print_r($arr); echo '</pre>';
$low = 0;
$hight = count($arr) - 1;
$findVal = rand(0, 20);
$index = binarySearch($arr, $findVal, $hight, $low);
printf("查找的值 '%d' 在數組中的下標 '%s'", $findVal, $index);
?></pre>
本文由用戶 nbnb 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!