看板 Grad-ProbAsk 關於我們 聯絡資訊
附個題目 http://www.lib.ntu.edu.tw/exam/graduate/97/97420.pdf 台大96 軟體設計 第二題 想請問一下如果說 今天hash處理 overflow 的機制是 rehashing, 那在rehashing的時候又該怎麼處理?! 可以利用chain 或者是 liner probing 嗎? 謝謝 :) -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.114.123.111
killersky:Rehashing提供一系列hashing function H1,H2,...,Hm 01/26 17:47
killersky:若發生overflow用H2,再發生overflow用H3.以此類推 01/26 17:49
killersky:直到有空bucket or 全部函數用完為止 01/26 17:49
killersky:其他overflow處理方式也一樣 再發生就在用一次該方式 01/26 17:50
christianSK:我遇到的問題是只有兩個hash fucntion 01/26 19:49
christianSK:那這樣overflow之後該怎麼辦呢? 01/26 19:49
hswayne:有題目嗎?! 01/26 19:52
附在上面嚕~ ※ 編輯: christianSK 來自: 140.114.123.116 (01/26 19:55)
ai305428d:double hash table定義: h(i,k)=(h1(k)+ih2(k)) 01/26 22:53
ai305428d:i表示嘗試第幾次 k表示data 01/26 22:55
ai305428d:簡單來說就是當用h1(k)發生collison時,h1(k)就去跳躍一 01/26 22:57
ai305428d:h2(k),之後把整個結果再帶入h1 function 01/26 22:58
ai305428d:之後如果又發生碰撞 i=1,2,3...依次帶入直到找到空的 01/26 23:00
christianSK:那請問如果 h1 + i*h2 超過size的話是怎麼處理? 01/26 23:03
dy957:a大第一行最後要加個 mod m 吧 01/26 23:06
ai305428d:抱歉那行定義是h(i,k)=(h1(k)+ih2(k))mod m 少打了... 01/26 23:07
christianSK:了解了~ 謝謝幾位 :) 01/26 23:09
sneak: Rehashing提供 https://daxiv.com 09/11 14:10