黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 哈希數(shù)據(jù)結(jié)構(gòu)表

哈希數(shù)據(jù)結(jié)構(gòu)表

更新時間:2021-10-08 10:29:42 來源:動力節(jié)點 瀏覽1105次

哈希表數(shù)據(jù)結(jié)構(gòu)以鍵值對的形式存儲元素,其中

鍵- 用于索引值的唯一整數(shù)

值- 與鍵關聯(lián)的數(shù)據(jù)。

散列(散列函數(shù))

在哈希表中,使用鍵處理新索引。并且,對應于該鍵的元素存儲在索引中。這個過程稱為散列。

讓 克 成為鑰匙和小時(x) 是一個哈希函數(shù)。

這里, h(k) 會給我們一個新的索引來存儲鏈接的元素克.

哈希沖突

當哈希函數(shù)為多個鍵生成相同的索引時,就會出現(xiàn)沖突(該索引中存儲什么值)。這稱為 哈希沖突。

我們可以使用以下技術之一解決哈希沖突。

通過鏈接解決沖突

開放尋址:線性/二次探測和雙散列

1. 通過鏈接解決沖突

在鏈式中,如果一個哈希函數(shù)為多個元素生成相同的索引,則這些元素通過使用雙向鏈表存儲在相同的索引中。

如果j是多個元素的插槽,則它包含一個指向元素列表頭部的指針。如果不存在元素,則j包含NIL。

操作偽代碼

chainedHashSearch(T, k)
  return T[h(k)]
chainedHashInsert(T, x)
  T[h(x.key)] = x //insert at the head
chainedHashDelete(T, x)
  T[h(x.key)] = NIL

線性探測的問題是填充了一組相鄰的插槽。插入新元素時,必須遍歷整個簇。這增加了對哈希表執(zhí)行操作所需的時間。

ii. 二次探測

它的工作原理類似于線性探測,但通過使用以下關系增加了插槽之間的間距(大于 1)。

h(k, i) = (h′(k) + c1i + c2i2) mod m在哪里,

c1和c2是正輔助常數(shù),

i = {0, 1, ….}

雙哈希

如果在應用散列函數(shù)后發(fā)生沖突h(k),則計算另一個散列函數(shù)以查找下一個時隙。

h(k, i) = (h1(k) + ih2(k)) mod m

良好的哈希函數(shù)

一個好的散列函數(shù)可能無法完全防止沖突,但它可以減少沖突的數(shù)量。

在這里,我們將研究不同的方法來找到一個好的哈希函數(shù)

1.除法

如果k是一個鍵并且m是哈希表的大小,則哈希函數(shù)h()計算如下:

h(k) = k mod m例如,如果一個哈希表的大小10和k = 112然后h(k) = 112國防部10 = 2。的值m不能是 的冪2。這是因為2二進制格式的的冪是10, 100, 1000, …. 當我們找到 時k mod m,我們總是會得到低階 p 位。

如果 m = 22, k = 17,則 h(k) = 17 mod 22 = 10001 mod 100 = 01

如果 m = 23, k = 17,則 h(k) = 17 mod 22 = 10001 mod 100 = 001

如果 m = 24, k = 17,則 h(k) = 17 mod 22 = 10001 mod 100 = 0001

如果 m = 2p,則 h(k) = m 的 p 個低位

2. 乘法

h(k) = ⌊m(kA mod 1)⌋在哪里,

kA mod 1給出小數(shù)部分kA,

⌊ ⌋ 給出底值

A是任意常數(shù)。的值A介于 0 和 1 之間。但是,≈ (√5-1)/2Knuth會建議最佳選擇。

3. 通用哈希

在通用散列中,散列函數(shù)是隨機選擇的,與密鑰無關。

Java示例

// Java program to demonstrate working of HashTable 
import java.util.*; 
class HashTable { 
  public static void main(String args[]) 
  {
  Hashtable<Integer, Integer> 
    ht = new Hashtable<Integer, Integer>();   
  ht.put(123, 432); 
  ht.put(12, 2345);
  ht.put(15, 5643); 
  ht.put(3, 321);
  ht.remove(12);
  System.out.println(ht); 
  } 
} 

哈希表的應用

哈希表在何處實現(xiàn)

需要恒定時間查找和插入

密碼應用

需要索引數(shù)據(jù)

大家如果想了解更多相關知識,不妨來關注一下動力節(jié)點的Java在線學習,里面有更多的知識可以學習,從基礎到進階的都有,很適合零基礎的小伙伴學習哦。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 欧美中文在线视频 | 久久精品观看影院2828 | 免费色视频 | 日韩欧美一卡二区 | 久久夜色视频 | 色老头成人免费视频天天综合 | 一个人免费看的视频 | 成人免费黄色小视频 | 天天干女人 | 日韩美女一区二区三区 | 色天天综合 | 97精品视频在线 | 天天色综合图片 | 四虎永久在线精品波多野结衣 | 日韩欧免费一区二区三区 | 成人激情免费视频 | 久久视热这只是精品222 | 国产精品莉莉欧美自在线线 | 九九影片重口味 | 亚洲一级特黄 | 又猛又黄又爽无遮挡的视频网站 | 欧美成人性色xxxxx视频大 | 一级级黄| 成人免费毛片网站 | 亚洲福利影院 | 免费看大黄高清网站视频在线 | 亚洲伦理在线观看 | 欧美高清视频手机在在线 | 在线观看国产免费高清不卡 | 天天天天做夜夜夜夜 | 国产一国产一级毛片视频 | 亚洲国产聚色窝 | 在线观看视频中文字幕 | 国产大片免费看 | 国产精品推荐天天看天天爽 | 免费在线a视频 | 特级xxxxx欧美孕妇孕交 | 99热精品一区 | 92看片淫黄大片看国产片 | 国产日韩在线视频 | 在线视频一区二区 |