雜湊函式的構造
直接定址法
除留餘數法
數字分析法
平方取中法
摺疊法(分段疊加法)
衝突處理方法
開放定址法
鏈位址法
建立公共溢位區
雜湊表:採用雜湊技術將記錄儲存在一塊連續的儲存空間中,這塊連續的儲存空間稱為雜湊表。
雜湊函式:將關鍵碼對映為雜湊表中適當儲存位置的函式。
雜湊位址:由雜湊函式所得的儲存位置址 。
雜湊技術的關鍵問題:
⑴ 雜湊函式的設計。如何設計乙個簡單、均勻、儲存利用率高的雜湊函式。
⑵ 衝突的處理。如何採取合適的處理衝突方法來解決衝突。
雜湊函式
直接定址法
除留餘數法
數字分析法
平方取中
摺疊法衝突的 處理
開雜湊方法( open hashing,也稱為拉鍊法,separate chaining ,鏈位址法)
閉雜湊方法( closed hashing,也稱為開位址方法,open addressing ,開放定址法)
建立公共溢位區
線性探測法雜湊表
假設給定的值為k,根據所設定的雜湊函式h,計算出雜湊位址h (k)
否則將該位址中的值與k比較,若相等則檢索成功,演算法結束
否則,按建表時設定的處理衝突方法查詢探查序列的下乙個位址,如此反覆下去
直到某個位址空間未被占用(查詢不成功,可以插入),演算法結束
或者關鍵碼比較相等(有重覆記錄,不需要插入)為止,演算法結束
如果探測完整個hash表,都沒有進行插入或查詢失敗,則丟擲空間異常(hash表容量不足)
處理衝突的方法——拉鍊法(鏈位址法)
基本思想:將所有雜湊位址相同的記錄,即所有同義詞的記錄儲存在乙個單鏈表中(稱為同義詞子表),在雜湊表中儲存的是所有同義詞子表的頭指標。
用拉鍊法處理衝突構造的雜湊表叫做開雜湊表。
設n個記錄儲存在長度為m的雜湊表中,則同義詞子表的平均長度為n / m。
處理衝突的方法——公共溢位區
基本思想:
雜湊表包含基本表和溢位錶兩部分(通常溢位表和基本表的大小相同),
將發生衝突的記錄儲存在溢位表中。
查詢時,對給定值通過雜湊函式計算雜湊位址,先與基本表的相應單元進行比較,若相等,則查詢成功;否則,再到溢位表中進行順序查詢。
雜湊表的查詢技術
所謂查詢,其實質就是要確定待查記錄在查詢結構中的儲存位置 以往的查詢結構中,查詢記錄和儲存位置之間並沒有確定的關係。而最理想的情況是不經過任何比較,就能夠得到待查記錄的儲存位置。那就必須在查詢記錄和儲存位置之間建立確定的關係h。使得每個關鍵碼key和唯一的儲存位址h key 對應起來.這個過程叫對映...
雜湊表 Hash雜湊 的查詢技術
雜湊技術 在記錄的儲存位置和它的關鍵碼key之間建立乙個確定的對應關係h,使得每個關鍵字key和唯一的儲存位置h key 相對應。儲存記錄時,根據這個對應關係找到關鍵碼的對映位址,並按此位址儲存該記錄 查詢記錄時,根據這個對應關係找到待查關鍵碼的對映位址,並按此位址訪問該記錄,這種查詢技術就稱為雜湊...
查詢 雜湊表查詢(雜湊表)
1 雜湊表查詢定義 雜湊技術是在記錄的儲存位置和它的關鍵字之間建立乙個確定的對應關係f,使得每個關鍵字key對應乙個儲存位置f key 查詢時,根據這個確定的對應關係找到給定值key的對映f key 若查詢集合中存在這個記錄,則必定在f key 的位置上。採用雜湊技術將記錄儲存在一塊連續的儲存空間中...