好記性不如爛筆頭~
雜湊表又名雜湊,能夠在o(1)的預期內完成對字典的獲取插入和刪除操作。
雜湊表hash table,記為ht,每個ht有b個桶,記為ht[1].....ht[b-1]。每個桶由s個槽組成,每個槽可以放置一條記錄。
關鍵字為k 的乙個記錄的位址或位置由雜湊函式h確定,h(k)為k的雜湊位址。
定義:關鍵字密度n/t,n是哈係表中記錄的數目,t是所有可能的關鍵字數目。
裝填密度或者裝填因子a為n/sb。
1.1 構造雜湊表
構造雜湊表的方法是:設要儲存的資料元素個數為 n,設定乙個長度為m(m≥n)的連續記憶體單元(即陣列),分別以每個資料元素的關鍵字ki(0≤i≤n-1)為自變數,以雜湊函式h(ki)值為該資料元素在陣列中的下標值儲存該資料元素。
//抄的 寫的很不錯
1.2 雜湊函式
要求是即容易計算又能夠將衝突數目最小化
1.除留餘數法。應用最廣泛。
關鍵字是非負整數,通過模運算取得初始儲存桶。
h(k)=k%d
d要取20以上的質數。這樣分配是相當均勻的。
2.平方取中法
3.摺疊法
4.數字分析法
數字分析法是取資料元素關鍵字中某些取值較均勻的數字位構造雜湊函式的方法。它只適合於所有關鍵字值已知的情況。
1.3 溢位/衝突處理
最常用的有開放定址法和鏈位址法。
1.開放定址法
線性探測法:s=1;
1)計算h(k); 2)以 ht[ (h(k)+j)%b] 依次順序找
均勻的雜湊函式與現行探測同時使用,查詢乙個關鍵字的平均比較次數的期望是(2-a)/(2-2a). a是裝填因子
2.鏈位址法
若有數字,每個桶指向鍊錶的第乙個節點。搜尋平均比較次數的期望是1+a/2。
無論什麼方法,最壞情況下比較次數都是o(n).
資料結構之雜湊表(雜湊表)
今天學的是資料結構的雜湊查詢篇,其他的查詢可參見以前的傳送門 以前的查詢都是基於比較關鍵字的基礎上,所以查詢的效率依賴於查詢過程中所進行的比較次數。理想的情況是不經過任何比較,通過計算就能直接得到記錄所在的儲存位址,雜湊查詢 hashed search 是基於上述思想的一種查詢方式。雜湊法又稱為雜湊...
隨手筆記之VC 七
tcp udp ip 協議 應用層 處理網路應用 表示層 資料表示 會話層 主機間的通訊 傳輸層 端到端的鏈結 tcp udp 網路層 定址和最短路勁 ip 資料鏈路層 介質訪問 物理層 二進位制傳輸 telnet 遠端登入協議。ftp 檔案傳輸協議 http 超文字傳輸協議 dns 網域名稱服務 ...
資料結構之雜湊表
雜湊表和雜湊化有乙個重要的概念是如何把關鍵字轉換成陣列下標,在雜湊表中這個轉換是通過雜湊函式來完成的。比如規定乙個單詞含有4個字元,對於單詞cats,我們採用 冪的連乘 的方式將乙個單詞對映成數字。因為有27個可能的字元,包括空格,所以冪採用27,則cats的數字下標是3 27 3 1 27 2 2...