二分查詢也叫折半查詢,是每次查詢集合中的一半。
1$arr = [3,5,10,20,22,26,55,59,63,68];
如上所示陣列,如果現在要查詢68所在的位置,使用遍歷比較的話,最壞情況需要查詢10次,而如果使用二分查詢演算法的話,只需比較3次就能找到,大大提高了查詢效率。
當然,數量小的陣列可能看不出很大的差異,如果陣列特別大,就能明顯的比較出來。
php**如下:
1function erfen($arr,$v
)elseif($arr[$mid] < $v
)else15}
16return -1;17}
1819
$arr = [3,5,10,20,22,26,55,59,63,68];
2021
echo erfen($arr,63);
輸出結果為8,即下標為8的元素為查詢元素。
注:傳入陣列必須為有序陣列
二分查詢 折半查詢 演算法
二分查詢也稱折半查詢 binary search 它是一種效率較高的查詢方法。但是,折半查詢要求線性表必須採用順序儲存結構,而且表中元素按關鍵字有序排列。首先,假設表中元素是按公升序排列,將表中間位置記錄的 關鍵字與查詢關鍵字比較,如果兩者相等,則查詢成功 否則利用中間位置 記錄將表分成前 後兩個子...
演算法 二分查詢(折半查詢)
二分查詢也稱折半查詢 binary search 它是一種效率較高的查詢方法。使用二分查詢的條件 1.必須採用順序儲存結構。2.必須按關鍵字大小有序排列。通俗一點的說 如果資料是乙個陣列,那麼這個陣列必須是有序的 時間複雜度 o log2n 如圖所示 下面我們來看c語言 include非遞迴實現 v...
演算法 二分查詢(折半查詢)
一.二分查詢基本思想 在有序的序列裡,先將目標和中間的數值比較,如果大於中間數值,則在後半段的中間繼續比對 如果小於中間數值,則在前半段的中間繼續比對。以此類推,直至找到目標,或者結束查詢沒有找到。二.關鍵條件 1 有序序列 2 順序儲存結構 三.時間複雜度 o logn 四.優點和不足 優點是比較...