php二分查詢演算法

2021-10-25 20:21:46 字數 664 閱讀 8498

二分查詢也稱折半查詢(binary search),它是一種效率較高的查詢方法。但是,折半查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列。

資料一分為二,然後兩邊比較,保留有效區間,繼續一分為二查詢,直到找到或者超出區間則結束,所以二分查詢的基本步驟是:

確定要查詢的區間

確定二分時的參照點

區間內選取二分點

根據二分點的值,捨去一半無用的區間

然後有效區間重複上面的步驟

/**

* 二分查詢演算法

* author:劉星麟

* @param array $arr 待查詢區間

* @param int $number 需要查詢數

* @return int 返回找到的鍵

*/function binary_search($arr, $number)

$len = count($arr);

$lower = 0;

$high = $len - 1; //別問我為啥-1 哈 給你個友情提醒 陣列下標 陣列下標 陣列下標

while($lower <= $high) elseif ($arr[$middle] < $number) else

}}

PHP 二分查詢演算法

二分查詢也稱折半查詢 binary search 它是一種效率較高的查詢方法。但是,折半查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列。param array arr 待查詢區間 param int number 查詢數 param int lower 區間最低點 param in...

php查詢演算法,PHP演算法之二分查詢

二分查詢的定義 二分查詢也稱折半查詢 binary search 它是一種效率較高的查詢方法。但是,折半查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列。演算法的要求 從上面的定義我們可以知道,滿足該演算法的要求必須如下兩點 必須採用順序儲存結構。必須按關鍵字大小有序排列。演算法的步...

php二分查詢 順序查詢演算法

二分查詢的陣列必須是排好序的,順序查詢沒要求,php查詢陣列元素有內建的函式array search和in array 二分查詢法 function binsearch arr,search elseif arr mid search elseif arr mid search return 查詢失...