平均查詢長度詳解

2021-09-26 18:54:59 字數 470 閱讀 2722

分塊查詢是折半查詢和順序查詢的一種改進方法,折半查詢雖然具有很好的效能,但其前提條件時線性表順序儲存而且按照關鍵碼排序,這一前提條件在結點樹很大且表元素動態變化時是難以滿足的。而順序查詢可以解決表元素動態變化的要求,但查詢效率很低。如果既要保持對線性表的查詢具有較快的速度,又要能夠滿足表元素動態變化的要求,則可採用分塊查詢的方法。

分塊查詢的速度雖然不如折半查詢演算法,但比順序查詢演算法快得多,同時又不需要對全部節點進行排序。當節點很多且塊數很大時,對索引表可以採用折半查詢,這樣能夠進一步提高查詢的速度。 [1]

分塊查詢由於只要求索引表是有序的,對塊內節點沒有排序要求,因此特別適合於節點動態變化的情況。當增加或減少節以及節點的關鍵碼改變時,只需將該節點調整到所在的塊即可。在空間複雜性上,分塊查詢的主要代價是增加了乙個輔助陣列。

需要注意的是,當節點變化很頻繁時,可能會導致塊與塊之間的節點數相差很大,沒寫快具有很多節點,而另一些塊則可能只有很少節點,這將會導致查詢效率的下降。

雜湊表查詢 的 平均長度

將關鍵字序列 7 8 30 11 18 9 14 雜湊儲存到雜湊表中。雜湊表的儲存空間是乙個下標從0開始的一維陣列。雜湊函式為 h key key 3 mod 7,處理衝突採用線性探測再雜湊法,要求裝填 載 因子為0.7。1 請畫出所構造的雜湊表 2 分別計算等概率情況下查詢成功和查詢不成功的平均查...

建立雜湊表 查詢及計算平均查詢長度

include include includetypedef struct 元素型別定義 datatype typedef struct 雜湊表型別定義 hashtable void createhashtable hashtable h,int m,int p,int hash,int n int...

查詢失敗的平均查詢長度怎麼求 插值查詢

當我們從字典中查詢 algorithm 這個單詞的時候,我們肯定不會傻傻地像二分查詢一樣首先從中間開始。相反,我們會從首字母為 a 的地方開始查詢,然後根據第二個字母在字母表中的位置,找到相應的位置再繼續查詢,這樣重複這個過程,直到我們查詢到這個單詞。接下來我們就來介紹一下類似於上述過程的插值查詢。...