二分法查詢

2021-09-07 02:45:18 字數 760 閱讀 6274

最近有同事問二分法查詢,表示不太懂,上網查了下資料,寫了個小demo

首先這個演算法要滿足的是,改陣列一定是有序的,否則無效!

/**

* 二分法查詢(遞迴)

*/function search($arr,$num,$start=0,$end = -1)

//找出中間的數的下標

$key = ceil(($start+$end)/2);

if($arr[$key] == $num)

if($num < $arr[$key])else

if($start > $end)

return search($arr,$num,$start,$end);

}/**

* @param $arr

* @param $num

* @param int $start

* @param int $end

* @return bool|float

* 二分法查詢(非遞迴)

*/function search2($arr,$num,$start=0,$end=-1)

//當開始值小與等於結束值的時候走迴圈

while($start <= $end)

if($num < $arr[$key])else

}return false;

}$arr = [1,3,4,6,8,9,10,28,36];

echo search($arr,3);

C 二分法查詢,遞迴二分法

用二分法來求需要查詢的值.includeusing namespace std 查詢key元素是否存在 int findkey const int buf 100 const int ilen,const int key else right left mid 1 查詢失敗 return 1 查詢k...

python二分法查詢 Python 二分法查詢

二分法查詢主要的作用就是查詢元素 lst 1,3,5,7,12,36,68,79 資料集 百萬級資料 num int input 請輸入你要查詢的元素資訊 for el in lst if num el print 存在 break else print 不存在 len lst 0 1 2 3 4 ...

二分法查詢

前幾天csdn上說只有10 程式設計師能寫出正確的二分法查詢 so.我在看過二分法查詢方法後寫了乙個 一次測試成功.範圍 需要次數 10 4 100 7 1000 10 10000 14 100000 17 1000000 20 除了對特別小的陣列外,二分法查詢表現是非常優秀的.每次對範圍加倍可以建...