基於樹等的查詢方法,都是通過一系列對比來查詢的,查詢效率由比較一次所縮小的查詢範圍決定。
而理想的查詢情況是直接根據關鍵碼得到其對應的資料元素位置。
原理:將待儲存元素經過某一函式特定轉換為乙個值,將這個值作為位址,將這個待儲存元素存入這個位址中。
當要查詢時,則將待查詢的元素經過同一轉換函式得到乙個轉換值,即位址,然後去這個位址獲取資料,與待查詢元素比較是否一致,一致則查詢成功。也稱為雜湊法(雜湊法)。
說明:轉換函式為雜湊函式,所構造的表為雜湊表。
注意:雜湊函式需要對不同的元素轉換出不同的值。但考慮到位址的有限性而元素理論上無限,可能存在經過雜湊函式轉換後,不同的元素對映到同乙個雜湊位址上,這個就是衝突。
問題:1.如何構造雜湊函式。(盡可能簡單,運算盡可能快。且轉換出的值應分布均勻,減少空間浪費)
2.如何解決衝突問題。
效能分析:
雜湊查詢法的效能依賴於產生衝突的多少,產生衝突多,查詢效率就低。主要取決於雜湊函式的構造,處理衝突的方法以及元素個數對比雜湊表長度的比例。
依位址查詢為o(1),而不同的解決衝突的方法,其對應的時間複雜度可能不相同。
演算法學習 雜湊表
雜湊表 hash table,也叫雜湊表 是根據鍵 key 而直接訪問在記憶體儲存位置的資料結構。也就是說,它通過計算乙個關於鍵值的函式,將所需查詢的資料對映到表中乙個位置來訪問記錄,這加快了查詢速度。這個對映函式稱做雜湊函式,存放記錄的陣列稱做雜湊表。雜湊函式 hashfunction 若關鍵字為...
雜湊表與雜湊演算法學習筆記
雜湊表 於陣列具有下標隨機訪問特性,理解這點非常重要。可以說雜湊表是由陣列進化來的。將輸入的鍵通過雜湊函式對映得出的value作為index去table中查詢,這便是雜湊的思想。graph lr a 鍵值key 雜湊函式 b 結果value 我們了解到為什麼雜湊表的查詢複雜度是o 1 因為key v...
經典演算法學習 雜湊查詢
雜湊查詢也稱為雜湊查詢。所謂的雜湊其實就是在記錄的儲存位置和記錄的關鍵字之間建立乙個確定的對應關係f,使得每個關鍵字key對應乙個儲存位置f key 查詢時,根據這個確定的對應關係找到給定值的對映f key 若查詢集合中存在這個記錄,則必定在f key 的位置上。雜湊技術既是一種儲存方法,也是一種查...