前面介紹了靜態查詢表以及動態查詢表中的一些查詢方法,其查詢的過程都無法避免同查詢表中的資料進行比較,查詢演算法的效率很大程度取決於同表中資料的查詢次數。
而本節所介紹的雜湊表可以通過關鍵字直接找到資料的儲存位置,不需要進行任何的比較,其查詢的效率相較於前面所介紹的查詢演算法是更高的。
在初中的數學課本中學習過函式的相關知識,給定乙個 x,通過乙個數學公式,只需要將 x 的值帶入公式就可以求出乙個新的值 y。
雜湊表的建立同函式類似,把函式中的 x 用查詢記錄時使用的關鍵字來代替,然後將關鍵字的值帶入乙個精心設計的公式中,就可以求出乙個值,用這個值來表示記錄儲存的雜湊位址。即:
資料的雜湊位址=f(關鍵字的值)
雜湊位址只是表示在查詢表中的儲存位置,而不是實際的物理儲存位置。f()是乙個函式,通過這個函式可以快速求出該關鍵字對應的的資料的雜湊位址,稱之為「雜湊函式」。例如,這裡有乙個**簿(查詢表),**簿中有 4 個人的****:
張三 13912345678假如想查詢李四的**號碼,對於一般的查詢方式最先想到的是從頭遍歷,一一比較。而如果將**簿構建成一張雜湊表,可以直接通過名字「李四」直接找到**號碼在表中的位置。李四 15823457890
王五 13409872338
趙六 13805834722
在構建雜湊表時,最重要的是雜湊函式的設計。例如設計**簿案例中的雜湊函式為:每個名字的姓的首字母
雜湊表,雜湊衝突
什麼是雜湊表?雜湊表 hash table,也叫雜湊表 是根據關鍵碼值 key value 而直接進行訪問的資料結構。也就是說,它通過把關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表。關鍵字 雜湊函式 雜湊函式 雜湊位址 優點 一對一的查詢...
雜湊表 雜湊表
一 定義 雜湊表 hash table,也叫雜湊表 是根據關鍵碼值 key value 而直接進行訪問的資料結構。也就是說,它通過把關鍵碼值對映到表中乙個位置來訪問記錄,以加快查詢的速度。這個對映函式叫做雜湊函式,存放記錄的陣列叫做雜湊表。雜湊表的做法其實很簡單,就是把key通過乙個固定的演算法函式...
雜湊表(雜湊表)
雜湊表是最基礎的資料結構之一,利用鍵值對儲存並檢索資料的一種非線性結構。在其它各種結構線性表 樹等資料結構中,記錄在結構中的位置是隨機的,和記錄關鍵字之間不存在確定的關係,因此,在結構中查詢記錄時需進行一系列和關鍵字的 比較 的基礎上。在順序查詢時,比較的結果為 與 兩種可能 在折半查詢 二叉排序樹...