散列表

散列表的基本概念

  • 散列函數:一個把查找表中的關鍵字映射成該關鍵字對應的地址的函數,記為Hash(key) = Addr
  • 沖突:散列函數可能會把兩個或兩個以上的不同關鍵字映射到統(tǒng)一地址
  • 同義詞:這些發(fā)生碰撞的不用關鍵字
  • 散列函數的兩點要求:1.散列函數應盡量減少這樣的沖突 2.設計好處理沖突的方法
  • 散列表:根據關鍵字而直接進行訪問的數據結構梯码,建立了關鍵字和存儲地址之間的中直接映射關系

散列函數的構造方法

在構造散列函數時,必須注意以下幾點:
1)散列函數的定義域必須包含全部需要存儲的關鍵字,而值域的范圍則依賴于散列表的大小或地址范圍
2)散列函數計算出來的地址應該能等概率芳撒、均勻地分布在整個空間中薯鼠,從而減少沖突的發(fā)生
3)散列函數因盡量簡單馋没,能夠在較多的時間內計算出任意關鍵字對應的散列地址

常見的散列函數

方法名 函數 優(yōu)點 缺點
直接定址法 H(key) = a x key + b 不會產生沖突 關鍵字分布不均呀潭,造成空間浪費
除留余數法 H(key)= key %p 關鍵字分布較均勻 會產生沖突
數學分析法 分析關鍵字集合選取重復概率較小的數位作關鍵字 更換關鍵字集合需重新構造散列函數
平方取中法 取關鍵字平方值的中間幾位作為關鍵地址 散列地址分布較均勻
折疊法 將關鍵字分割成位數相同的幾個部分然后取這幾個部分的疊加個作為散列地址

處理沖突的方法

1.開放地址法
Hi = (H(key)+di)%m
1)線性探測法:di = 0,1,2,3,...,m-1,沖突法發(fā)生時钉迷,順序查看表中下一個單元至非,直到找到一個空閑單元或 查遍全表
2)平方探測法:di = 0*0,1*1钠署,-1*1,2*2,-2*2荒椭,...,k*k,-k*k 是一種比較好的處理宏圖的方法谐鼎,可以避免癡線“堆積”問題,它的缺點是不能探測到散列表上的所有大院趣惠,但至少能探測到一半單元
3)再散列法:di = Hash2(key)
4) 偽隨機序列法:當di = 為隨機數序列時

2.拉鏈法
適合經常進行插入和刪除操作

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末狸棍,一起剝皮案震驚了整個濱河市身害,隨后出現的幾起案子,更是在濱河造成了極大的恐慌草戈,老刑警劉巖塌鸯,帶你破解...
    沈念sama閱讀 207,248評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現場離奇詭異唐片,居然都是意外死亡丙猬,警方通過查閱死者的電腦和手機,發(fā)現死者居然都...
    沈念sama閱讀 88,681評論 2 381
  • 文/潘曉璐 我一進店門费韭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茧球,“玉大人,你說我怎么就攤上這事星持∏缆瘢” “怎么了?”我有些...
    開封第一講書人閱讀 153,443評論 0 344
  • 文/不壞的土叔 我叫張陵督暂,是天一觀的道長揪垄。 經常有香客問我,道長逻翁,這世上最難降的妖魔是什么福侈? 我笑而不...
    開封第一講書人閱讀 55,475評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮卢未,結果婚禮上肪凛,老公的妹妹穿的比我還像新娘。我一直安慰自己辽社,他們只是感情好伟墙,可當我...
    茶點故事閱讀 64,458評論 5 374
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著滴铅,像睡著了一般戳葵。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上汉匙,一...
    開封第一講書人閱讀 49,185評論 1 284
  • 那天拱烁,我揣著相機與錄音,去河邊找鬼噩翠。 笑死戏自,一個胖子當著我的面吹牛,可吹牛的內容都是我干的伤锚。 我是一名探鬼主播擅笔,決...
    沈念sama閱讀 38,451評論 3 401
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了猛们?” 一聲冷哼從身側響起念脯,我...
    開封第一講書人閱讀 37,112評論 0 261
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎弯淘,沒想到半個月后绿店,有當地人在樹林里發(fā)現了一具尸體,經...
    沈念sama閱讀 43,609評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡庐橙,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,083評論 2 325
  • 正文 我和宋清朗相戀三年惯吕,在試婚紗的時候發(fā)現自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片怕午。...
    茶點故事閱讀 38,163評論 1 334
  • 序言:一個原本活蹦亂跳的男人離奇死亡废登,死狀恐怖,靈堂內的尸體忽然破棺而出郁惜,到底是詐尸還是另有隱情堡距,我是刑警寧澤,帶...
    沈念sama閱讀 33,803評論 4 323
  • 正文 年R本政府宣布兆蕉,位于F島的核電站羽戒,受9級特大地震影響,放射性物質發(fā)生泄漏虎韵。R本人自食惡果不足惜易稠,卻給世界環(huán)境...
    茶點故事閱讀 39,357評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望包蓝。 院中可真熱鬧驶社,春花似錦、人聲如沸测萎。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,357評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽硅瞧。三九已至份乒,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間腕唧,已是汗流浹背或辖。 一陣腳步聲響...
    開封第一講書人閱讀 31,590評論 1 261
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留枣接,地道東北人颂暇。 一個月前我還...
    沈念sama閱讀 45,636評論 2 355
  • 正文 我出身青樓,卻偏偏與公主長得像月腋,于是被迫代替她去往敵國和親蟀架。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,925評論 2 344

推薦閱讀更多精彩內容

  • 散列表(hash table)是實現字典操作的一種有效數據結構榆骚,盡管最壞情況下片拍,散列表中的查找一個元素的時間與鏈表...
    Mrsunup閱讀 1,326評論 0 2
  • 說明:該系列博客整理自《算法導論(原書第二版)》,但更偏重于實用妓肢,所以晦澀偏理論的內容未整理捌省,請見諒。另外本人能力...
    黑夜0411閱讀 1,458評論 0 2
  • 基本概念 基于線性表碉钠、樹表結構的查找方法纲缓,這類查找方法都是以關鍵字的比較為基礎的。在查找過程中只考慮各元素關鍵字之...
    官先生Y閱讀 487評論 0 2
  • 還想看更多文章的朋友可以訪問我的個人博客 散列表 散列表(Hash table喊废,也叫哈希表)祝高,是根據關鍵碼值(Ke...
    我是才子閱讀 901評論 0 0
  • 1 散列表 散列表的英文叫“Hash Table”,我們平時也叫它“哈希表”或者“Hash 表”污筷,散列表用的就是數...
    貪睡的企鵝閱讀 1,417評論 0 1