二分查找的基本想法是將一個有序數組取中間的那個值和所查找的值進行大小比較,當所查找的值大於數組的中間值時,即說明該有序數組中間值前的所有值都小於該查找的值,所以可以將該數組中間值前的所有值排除,再從該數組中間值到該數組末尾的值中繼續查找所需值,其代碼實現如下:
//二分查找
function bin_search($array,$search){
$low=0;
$height=count()-1;長度
while($low
$mid=floor(($low+$height)/2);//取得中間數,mid=floor(($low+$height)/2);/取得中間數,.,強迫錯
if($array[$mid]==$search){
return $mid+1;//回傳已找到的序號
mid]
//當中間值小於所查值時,則$mid左邊的值都小於$search,此時要將$mid賦值為$low
$low= $mid+1;
}else if($array[$mid]>$search){
//此時說明中間值大於所查值,則$mid右邊的所有值都大於$search ,此時要將$mid賦值給$height
$height=$mid-1;
}
return "查找失敗";//查找失敗,數組中不存在該值
}
}
$arr=array(1,4,6,33,75,88,89,$arr=array(1,4,6,33,75,88,89,93);
echo bin_search($arr,66);
?>
以上就介紹了PHP資料結構(1) 二分查找,包含了面向的內容,希望對PHP教學有興趣的朋友有幫助。