理論基礎 查詢 插值查詢

2021-08-19 13:36:27 字數 485 閱讀 5518

同樣的,以取值範圍在 1~10000 間的 100 個元素從小到大均勻分布的陣列中查詢 5,那麼自然會考慮從陣列下標較小的開始查詢。

可以看出,二分查詢這種查詢方式,並不是自適應的,因此,基於二分查詢,就有了插值查詢,其將查詢點的選擇改進為自適應選擇,從而提高查詢效率。

簡單來說,插值查詢就是根據要查詢的關鍵字 key 與查詢表中最大最小記錄的關鍵字比較後的查詢方法,其核心在於插值的計算公式。

在二分查詢中,查詢點的計算為:

而插值查詢,將中的

即將:從時間複雜度來說,其最壞時間複雜度也是 o(longn),但對於表長較大,而關鍵字分布又比較均勻的查詢表來說,其平均效能要比二分查詢好的多。

反之,若查詢表中關鍵字分布非常不均勻,那麼插值查詢未必是很合適的選擇。

int insertionsearch(int a,int key, int low, int high)

理論基礎 查詢 二分查詢

二分查詢又稱折半查詢,其要求線性表中的記錄必須按關鍵碼有序,且必須採用順序儲存。其基本思想是 用給定值 k 先與中間結點的關鍵字比較,中間結點把線形表分成兩個子表,若相等則查詢成功 若不相等,再根據 k 與該中間結點關鍵字的比較結果確定下一步查詢哪個子表,這樣遞迴進行,直到查詢到或查詢結束發現表中沒...

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

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

查詢 插值查詢

插值查詢 插值查詢法的演算法思想 插值查詢法其實就是折半查詢法的加強優化版,它對mid的演算法進行了重新的規定,使此查詢法的效率更高。mid low high low key a low a high a low 插值查詢法的演算法可描述如下 int search keytype key,int n...