演算法學習 雜湊表

2021-09-27 06:41:12 字數 980 閱讀 8036

雜湊表:hash table,也叫雜湊表),是根據鍵(key)而直接訪問在記憶體儲存位置的資料結構。也就是說,它通過計算乙個關於鍵值的函式,將所需查詢的資料對映到表中乙個位置來訪問記錄,這加快了查詢速度。這個對映函式稱做雜湊函式,存放記錄的陣列稱做雜湊表

雜湊函式: (hashfunction):若關鍵字為k,則其值存放在f(k)的儲存位置上。由此,不需比較便可直接取得所查記錄。稱這個對應關係為雜湊函式

map (常用於查詢數值和計數)

sethashmap  hashset  :兩者的底層是雜湊表的實現,查詢的時間複雜度為o(1)

treeset treemap  :兩者的底層是樹的實現,裡面的元素是經過排序的,查詢的時間複雜度為o(logn)

例題:1、給定兩個字串 s 和 t ,編寫乙個函式來判斷 t 是否是 s 的字母異位詞。(

//method1:sort the two strings and judge whether they are equal

public boolean isannagram(string s,string t)

//method2: count the number of characters of two strings and

// 時間複雜度:o(n)o(n)。時間複雜度為 o(n)o(n) 因為訪問計數器表是乙個固定的時間操作。

// 空間複雜度:o(1)o(1)。儘管我們使用了額外的空間,但是空間的複雜性是 o(1)o(1),因為無論 nn 有多大,表的大小都保持不變。

public boolean isannagram2(string s,string t)

}

return ans;

}}

演算法學習 雜湊表應用

hash演算法就是一種壓縮對映,壓縮到有鍊表頭函式組成的固定長度陣列中。上實際例子 例1 100萬條簡訊,有重複,以文字形式儲存,一行一條。找出重複最少的前十條。解法 雜湊表 推排序。步驟一 統計重複次數,建立資料節點 struct hashnode node hash函式 int hashfuc ...

演算法學習 雜湊表及雜湊查詢

基於樹等的查詢方法,都是通過一系列對比來查詢的,查詢效率由比較一次所縮小的查詢範圍決定。而理想的查詢情況是直接根據關鍵碼得到其對應的資料元素位置。原理 將待儲存元素經過某一函式特定轉換為乙個值,將這個值作為位址,將這個待儲存元素存入這個位址中。當要查詢時,則將待查詢的元素經過同一轉換函式得到乙個轉換...

雜湊表與雜湊演算法學習筆記

雜湊表 於陣列具有下標隨機訪問特性,理解這點非常重要。可以說雜湊表是由陣列進化來的。將輸入的鍵通過雜湊函式對映得出的value作為index去table中查詢,這便是雜湊的思想。graph lr a 鍵值key 雜湊函式 b 結果value 我們了解到為什麼雜湊表的查詢複雜度是o 1 因為key v...