二分查詢也稱折半查詢(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 查詢失...