將關鍵字序列(7、8、30、11、18、9、14)雜湊儲存到雜湊表中。雜湊表的儲存空間是乙個下標從0開始的一維陣列。雜湊函式為: h(key) = (key*3) mod 7,處理衝突採用線性探測再雜湊法,要求裝填(載)因子為0.7。
(1) 請畫出所構造的雜湊表;
(2) 分別計算等概率情況下查詢成功和查詢不成功的平均查詢長度。
存放位置01
2345
6789
存放數字714
8113018
9存放位置01
2345
6789
存放數字714
8113018
9查詢長度12
1113
3 存放位置01
2345
6789
存放數字714
8113018
9接下來討論不成功的情況,由上表,計算查詢不成功的次數就直接找關鍵字到第乙個位址上關鍵字為空的距離即可, 但根據雜湊函式位址為mod7,因此初始只可能在0~6的位置。等概率情況下,查詢0~6位置查詢失敗的查詢次數為:
看位址0,到第乙個關鍵字為空的位址2的距離為3,因此查詢不成功的次數為3.
位址1, 到第乙個關鍵為空的位址2的距離為2,因此查詢不成功的次數為2.
位址2, 到第乙個關鍵為空的位址2的距離為1,因此查詢不成功的次數為1.
位址3,到第乙個關鍵為空的位址4的距離為2,因此查詢不成功的次數為2.
位址4,到第乙個關鍵為空的位址4的距離為1,因此查詢不成功的次數為1.
位址5,到第乙個關鍵為空的位址2(注意不是位址9,因為初始只可能在0~6之間(因為只有7個數),因此迴圈回去)的距離為5,因此查詢不成功的次數為5.
位址6,到第乙個關鍵為空的位址2(注意不是位址9,因為初始只可能在0~6之間,因此迴圈回去)的距離為4,因此查詢不成功的次數為4.
因此查詢不成功的次數表如下表所示
存放位置01
2345
6789
存放數字714
8113018
9查詢不成功長度32
1215
4
建立雜湊表 查詢及計算平均查詢長度
include include includetypedef struct 元素型別定義 datatype typedef struct 雜湊表型別定義 hashtable void createhashtable hashtable h,int m,int p,int hash,int n int...
雜湊表的平均查詢長度 資料結構系列查詢
查詢 比較淡然的一章。主要知識點 查詢表的檢索機制 平均查詢長度 折半查詢表 二叉排序樹 雜湊表1 查詢表的檢索機制 本章給出了三種型別的查詢表,第一類是線性索引,記錄關鍵字一般按序排列,以提高檢索速度。對應檢索採用基於比較檢索方法。第二類是樹形檢索,樹形的典型結構是二叉排序樹,其檢索的時間複雜度與...
平均查詢長度詳解
分塊查詢是折半查詢和順序查詢的一種改進方法,折半查詢雖然具有很好的效能,但其前提條件時線性表順序儲存而且按照關鍵碼排序,這一前提條件在結點樹很大且表元素動態變化時是難以滿足的。而順序查詢可以解決表元素動態變化的要求,但查詢效率很低。如果既要保持對線性表的查詢具有較快的速度,又要能夠滿足表元素動態變化...