雜湊表的建立與查詢 效能分析

2021-10-20 19:20:45 字數 575 閱讀 6686

通過雜湊函式建立乙個雜湊表,其中可能有同義詞,需進行改造優化,使雜湊位址集中分布均勻,且雜湊函式盡量簡單。

考慮因素:

根據元素集合的特性:

方法:直接定址法

hash(key)=a key+b (線性)

除留餘數法

hash(key)=key mod p (p是乙個整數)

如何解決衝突方法?

- 開放定址法(開位址法)

- 鏈位址法

- 再雜湊法(雙雜湊函式法)

- 建立乙個公共溢位區

1、開放定址法

常用方法:線性探測法,二次探測法,偽隨機探測法

線性探測法

eg:二次探測法

eg:偽隨機探測法

沒有什麼規律,d為偽隨機數。

2、鏈位址法(拉鍊法)

查詢效率分析:

asl取決於

小結:雜湊表技術具有良好的平均效能,優於一些傳統的技術

連位址優於開放位址法

除留餘數法作雜湊函式優於其他型別函式**

雜湊表查詢的效能分析

雜湊表的查詢過程基本上和造表過程相同。一些關鍵字可通過雜湊函式轉換的位址直接找到,另一些關鍵字在雜湊函式得到的位址上產生了衝突,需要按處理衝突的方法進行查詢。在處理衝突的方法中,產生衝突後的查詢仍然是給定值與關鍵碼進行比較的過程。所以,對雜湊表查詢效率的量度,依然用平均查詢長度來衡量。查詢過程中,關...

雜湊表的建立 查詢。

今天考完數電回來接著昨天的寫,昨天只用偽隨機數列探測法建立了雜湊表,今天完成查詢功能。但是對於兩個key值相等的名字,卻沒找到好的解決方法。仍然存在很大的bug,有時間再修改 如下 1 include2 using namespace std 34 define m 47 取模值為47 56 typ...

雜湊查詢(雜湊表建立及平方探測)

編譯處理時,涉及變數及屬性的管理 插入 新變數的定義 查詢 變數的引用 順序查詢 o n 二分查詢 o logn 二叉樹查詢o h 平衡二叉樹 o logn 如何快速查詢?查詢的本質 已知物件找位置 有序的安排物件 全序 順序查詢 半序 二叉樹 直接算出位置 雜湊查詢 雜湊查詢 1.計算位置。2.解...