雜湊表概念

2021-08-29 08:50:46 字數 826 閱讀 6817

一般的線性表、樹中,記錄在結構中的相對位置是隨機的即和記錄的關鍵字之間不存在確定的關係,在結構中查詢記錄時需進行一系列和關鍵字的比較。這一類查詢方法建立在「比較」的基礎上,查詢的效率與比較次數密切相關。理想的情況是能直接找到需要的記錄,因此必須在記錄的儲存位置和它的關鍵字之間建立一確定的對應關係f,使每個關鍵字和結構中乙個唯一的儲存位置相對應。因而查詢時,只需根據這個對應關係f找到給定值k的像f(k)。若結構中存在關鍵字和k相等的記錄,則必定在f(k)的儲存位置上,由此不需要進行比較便可直接取得所查記錄。在此,稱這個對應關係f為雜湊函式,按這個思想建立的表為雜湊表(又稱為雜湊法或雜湊法)。

雜湊表不可避免衝突(collision)現象:對不同的關鍵字可能得到同一雜湊位址 即key1≠key2,而f(key1)=f(key2)。具有相同函式值的關鍵字對該雜湊函式來說稱為同義詞(synonym)。 因此,在建造雜湊表時不僅要設定乙個好的雜湊函式,而且要設定一種處理衝突的方法。可如下描述雜湊表:根據設定的雜湊函式h(key)和所選中的處理衝突的方法,將一組關鍵字映象到乙個有限的、位址連續的位址集(區間)上並以關鍵字在位址集中的「象」作為相應記錄在表中的儲存位置,這種表被稱為雜湊表。

對於動態查詢表而言,1) 表長不確定;2)在設計查詢表時,只知道關鍵字所屬範圍,而不知道確切的關鍵字。因此,一般情況需建立乙個函式關係,以f(key)作為關鍵字為key的錄在表中的位置,通常稱這個函式f(key)為雜湊函式。(注意:這個函式並不一定是數學函式)

現實中雜湊函式是需要構造的,並且構造的好才能使用的好。

用途:加密,解決衝突問題。。。。

用途很廣,位元精靈中就使用了雜湊函式,你可 以自己看看。

具體可以學習一下資料結構和演算法的書。

雜湊表 基本概念

雜湊表,又稱為雜湊表,是一種根據鍵來直接訪問記憶體位置的一種資料結構。它通過乙個計算鍵值的函式 雜湊函式 來將所查詢的資料對映到雜湊表中的乙個位置來查詢該位置的內容,從而達到快速查詢的目的。存放記錄的陣列就稱為雜湊表 若關鍵字為k,則其值就存放在f k 對應的位置上,這樣可以實現不用比較就可以直接找...

雜湊表(hash table)基礎概念

引入 我們在學習陣列的時候,使用陣列元素的下標值即可訪問到該元素,所花費的時間是o 1 與陣列元素的個數n沒有關係,這就是雜湊方法的核心思想。雜湊方法 以關鍵值k為自變數,通過一定的函式關係h k 雜湊函式 計算出對應的函式值,把這個值解釋為結點的儲存位址,將結點的關鍵碼 key 和屬性資料 val...

Linux中的雜湊表概念

一.雜湊表 雜湊表 hash table,也叫雜湊表 是根據關鍵碼值 key value 而直接進行訪問的資料結構。也就是說,它通過把關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表。當使用雜湊表進行查詢的時候,就是再次使用雜湊函式將key轉...