2017-07-16 103 views
1

我有一個11個散列表的散列表。而擁有hashfunktion散列表碰撞處理

h(k)= k mod 6 or h(k)= k mod 10

哪一個是最好的解決方案之間做出抉擇呢?我認爲這是h(k)= k mod 10,因爲h(k)= k mod 6可以指向2個或3個密鑰到同一個存儲桶。

而且我認爲當你有h(k)= k mod 10桶的最低必須是10

感謝您的幫助。

+0

你需要使用可以返回11個不同值的東西,比如'k mod 11'。 – interjay

+0

這意味着當我有一個11個值的數組大小,並有mod 7和mod 13之間的選擇我採取mod 13,對吧? @interjay – flowers1234

+1

不,你拿着mod 11.以mod 7或mod 13爲傻瓜。國防部7會留下空的水桶,並且國防部13需要跟隨國防部11來提供一個有效的水桶。 – interjay

回答

2

如果必須這兩個功能之間做出選擇,國防部10勝,因爲它的葉子只有一個桶未使用的,相對於五桶,如果你與國防部去6

理想的是將不使用的,但,你應該使用11月11日的十一桶散列表,因爲它散佈所有可用桶中的散列碼。

+0

thx @dasblinkenlight。很抱歉有很多問題。那意味着,小於11的所有東西都是空間的腰部? – flowers1234

+1

@ flowers1234沒有那麼多空間,但它會浪費一個桶,導致剩餘桶的每桶負載更高,碰撞更多,性能更低。 – dasblinkenlight

+0

thx !!!我還有一個問題不在這個主題,但我認爲這將是一個新的問題,用於計算搜索成功的平均搜索時間:/有一些像'α= n/m?'(不知道n和m是什麼代表:D) – flowers1234