1
A
回答
2
散列函數需要的輸出是將100個字符串散佈爲隨機地說200個「鴿子」。在發生碰撞的情況下,即已經佔用的插槽,線性掃描將搜索下一個未佔用的插槽,立即產生一組至少兩個(它也可能連接兩組)。當與羣集發生衝突時,線性探測會將羣集添加一個新密鑰,其原始位置應該位於羣集中的任何位置。
很多快速評估哈希函數都會遇到不均勻分配密鑰的問題。當輸入數據不均勻分佈時,這兩個現象相互強調,在線性探測的情況下可能會導致大量的密鑰集羣。實際上,這不僅會導致插入,而且還會搜索O(n)問題而不是O(1)。
1
它不是總是連續的元素將形成集羣的情況。
Condictory例如
假設有100
條目的哈希表:和所述散列函數是:
h(x) = x mod 100;
說您插入元件:形成
948,748,172,973,473,572,72
簇將是:
簇1:948(position 48),748(position 49)
(清楚元素不連續)
簇2:172(position 72),973(position 73),473(position 74),572(position 75),72(position 76)
(清楚元素不連續)。
YES,集羣影響的時間找到一個免費的插槽,因爲在linear probing
,我們掃描哈希表找到第二天空閒時隙,所以由於集羣,線性掃描將需要更多的時間,由於集羣形成,但其唯一的原因是線性掃描在碰撞的情況下。
相關問題
- 1. 「散貨」是什麼意思?
- 2. '散列缺點'是什麼意思?
- 3. Bash'type someCmd':什麼意思是'散列'?
- 4. 宏中的雙重散列(##)是什麼意思?
- 5. 散列表碰撞處理
- 6. 是什麼意思:是什麼意思?
- 7. 什麼是Javascript碰撞?
- 8. 什麼?在C#中是什麼意思?
- 9. 在Babeljs中「鬆散」的意思是什麼?
- 10. 什麼意思?=在vb.net中的意思?
- 11. 什麼意思?=在PHP中的意思?
- 12. 什麼是「?」在Java中的意思是?
- 13. 符號「#!」是什麼意思?在Python中的意思是?
- 14. 散列time_t的字節是什麼意思?
- 15. 「散列函數的分佈」是什麼意思?
- 16. 什麼是connection.Dispose()在C#中的意思?
- 17. 什麼是(int)在c#中的意思?
- 18. 在PowerShell中的-f是什麼意思?
- 19. Aspect在ios中的意思是什麼
- 20. 什麼是~~在JavaScript中的意思?
- 21. '「」''在C#中的「」+ ex'是什麼意思?
- 22. 什麼意思 - >在Ruby中的意思是
- 23. 是什麼意思?=在僞代碼中使用時的意思?
- 24. 'a'在Ruby open()中意味着什麼?| f |是什麼意思?意思?
- 25. URL的最佳可逆散列算法是什麼? (接近零碰撞!)
- 26. tomcat中server.xml中的意思是什麼?
- 27. 什麼意思是「x位散列函數」
- 28. 在Windows中使用NTLMv2散列技術的碰撞率
- 29. 在C中的參數列表中是什麼意思?
- 30. 「?」是什麼意思?調用jsp的標記是什麼意思?
隨時爲任何疑問。 –