通過雜湊函式建立乙個雜湊表,其中可能有同義詞,需進行改造優化,使雜湊位址集中分布均勻,且雜湊函式盡量簡單。
考慮因素:
根據元素集合的特性:
方法:直接定址法
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.解...