理論基礎 查詢 二分查詢

2021-08-16 21:15:31 字數 737 閱讀 1089

二分查詢又稱折半查詢,其要求線性表中的記錄必須按關鍵碼有序,且必須採用順序儲存。

其基本思想是:用給定值 k 先與中間結點的關鍵字比較,中間結點把線形表分成兩個子表,若相等則查詢成功;若不相等,再根據 k 與該中間結點關鍵字的比較結果確定下一步查詢哪個子表,這樣遞迴進行,直到查詢到或查詢結束發現表中沒有這樣的結點。

int binarysearch(int a, int value, int n)  

else if (a[mid] < value) //value在右邊部分

left = mid + 1; //調整集合下界

else //value在左邊部分

right = mid - 1; //調整集合上界

}return res; //若未找到value,則res= -1

}

圖例

int binarysearch(double low,double high)" class="mathcode" src=""/>個結點,假設表中的每條記錄查詢概率相等,即:

故平均時間複雜度為:o(logn)

理論基礎 查詢 插值查詢

同樣的,以取值範圍在 1 10000 間的 100 個元素從小到大均勻分布的陣列中查詢 5,那麼自然會考慮從陣列下標較小的開始查詢。可以看出,二分查詢這種查詢方式,並不是自適應的,因此,基於二分查詢,就有了插值查詢,其將查詢點的選擇改進為自適應選擇,從而提高查詢效率。簡單來說,插值查詢就是根據要查詢...

理論 二分查詢(1) 基礎樣例

二分搜尋法,是通過不斷縮小接的可能存在的範圍,從而求得問題最優解的方法。在程式競賽中,經常可以見到二分搜尋演算法和其他演算法結合的題目。接下來給大家介紹經典的二分搜尋的題目。例題 lower bound函式手動實現 給定乙個非嚴格單調的遞增數列和乙個整數k。求滿足 ai k 條件的最小的i。在不存在...

理論基礎 查詢 斐波那契查詢

斐波那契查詢,其利用了 分割原理來對二分查詢進行了改進。分割又稱 比例,是指事物各部分間一定的數學比例關係,即將整體一分為二,較大部分與較小部分之比等於整體與較大部分之比,其比值約為 1 0.618 或 1.618 1,比例不僅在繪畫 藝術上有著重要的審美價值,在工程上也具有極大的作用。在二分查詢中...