作者julie7994 (小屁)
看板EE_DSnP
標題[問題] about hash
時間Sun Jan 16 23:06:26 2011
請問一下
如果每個bucket有可能會overflow
那應該是一剛開始bucket的size是定死的
然後超過才要處理overflow
那
hash 中 bucket的size要怎麼決定??在哪裡決定?
那如果
用push_back去insert node
會一直動態增加size
雖然有可能會造成每個bucket不平均
但那這樣
我是不是可以不用處理overflow的問題了?
謝謝:)
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.4.183
1F:推 ric2k1:Hash 的 #buckets 可以在 constructor 指定,或是呼叫 init 01/17 00:37
2F:→ ric2k1:至於 #buckets 應該訂多少,我建議你可以預估實際上會有的 01/17 00:38
3F:→ ric2k1:#nodes 來做調整,通常是取個質數。 01/17 00:38
4F:推 ric2k1:myHash 裏頭的 Hash 每個 bucket裏頭存的是vector<HashNode 01/17 00:39
5F:→ ric2k1:他的 size 是可以長大的,所以你可以不用考慮 overflow 的 01/17 00:40
6F:→ ric2k1:問題。不過還是要好好設計 hash function, so that you can 01/17 00:40
7F:→ ric2k1:have a balanced distribution. 01/17 00:40