和順序表一樣,雜湊表也是用來儲存資料的;和順序表不同的是,雜湊表優化了查詢資料的操作,使得在對通過雜湊表進行儲存的資料進行查詢的開銷大大降低。在雜湊表中,我們用鍵值指代我們需要進行儲存的資料,用雜湊位址表示儲存的位置,用雜湊函式指代通過鍵值確定儲存位置或者通過儲存位置確定鍵值的對映關係(雜湊)。
除留餘數法就是選取乙個不大於表長的數值p做被除數,然後將帶儲存的資料依次除以這個數值p,取運算的餘數作為該數值在雜湊表中的儲存位置。這種方法產生衝突的原因是p值選取的不恰當,使得儲存資料中乙個以上的資料除以p後產生的餘數一樣,導致儲存位置相同。乙個比較好的解決辦法是在選取p值時,要選取小於表長的最大質數,這樣能把餘數相同的風險降低到最小。
顧名思義,該方法就是先求得待儲存資料的平方值,排序之後然後選取中間的平方值作為p值。這種方法通過用乘法替代除法,以提高cpu的效率(但是現在感覺不出來cpu處理乘除法的效率差了)。這種方法適用於數值分配比較平均的情況。
對查詢位置的index進行處理,進行諸如+1、-1、+2、-2的操作。
在查詢位置的index周圍隨機進行再次查詢。
發生衝突時,採用另外一種對映方法進行查詢。
將所有關鍵字為同義詞的資料元素存放在同一線性鍊錶中,借助指標將產生衝突的資料元素放在同乙個指標所指向的鍊錶中,從而起到保持同義詞在同一線性表中按關鍵字進行有序排列。
建立乙個公共緩衝區,將有衝突現象的關鍵字都儲存在緩衝區內。在查詢的結果為具有衝突的關鍵字時,就進入緩衝區進行查詢。
以上就是我對雜湊表的理論理解了,後續學習中補充相應的實踐**。
——joker
資料結構 雜湊儲存
雜湊表 根據關鍵碼值 key value 而直接進行訪問的資料結構。雜湊儲存 在記錄的儲存位置和它的關鍵字之間建立一種確定的對應關係,使得每個關鍵字key對應乙個儲存位置 關鍵字 key 記錄的儲存位置 我們把這種關係key稱為雜湊函式 雜湊函式 查詢時,可根據確定的對應關係,找到給定的key的對映...
資料結構 雜湊表
1.雜湊表的定義 元素的儲存位置和它的關鍵碼之間建立乙個確定的對應關係h,使得每個關鍵碼key和唯一的儲存位置h key 相對應。在查詢時,根據這個確定的對應關係找到給定值k的對映h k 若查詢集合中存在這個記錄,則必定在h k 的位置上,這種查詢技術稱為雜湊技術。採用雜湊技術將記錄儲存在一塊連續的...
資料結構 雜湊表
雜湊表的定義 雜湊表 hash table,也叫雜湊表 是根據關鍵碼值 key value 而直接進行訪問的資料結構。也就是說,它通過把 關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的 速度。這個對映函式叫做雜湊函式,存放 記錄的陣列叫做雜湊表。雜湊函式的析構方法 餘數法 取關鍵字被某個不大於雜...