假設我們希望重複搜索長度爲N的元素的鏈表,其中每個元素都包含一個非常長的字符串鍵。在搜索列表中查找具有給定鍵的元素時,我們如何利用散列值?散列表中的鏈接列表
2
A
回答
0
將密鑰插入散列表中。然後你可以搜索(理論上)恆定的時間。
+0
java中的哈希表提供了平均不變的時間添加/刪除(即theta(1)),而不是理論上的。理論上,它們提供O(n)時間來添加/刪除。 –
+0
有許多哈希表實現。你指的是HashTable類嗎?我一般在談論散列。 – Tudor
0
您需要在搜索列表之前準備好散列,並且您需要能夠在恆定時間內訪問字符串的散列。然後,您可以首先比較哈希值,並在哈希值匹配時僅比較字符串。您可以使用散列表而不是鏈接列表。
0
字符串的散列值(hashCode
)有點像字符串的id。不完全獨特,但通常很獨特。您可以使用HashMap
來存儲字符串鍵及其值。顧名思義,它使用Strings的哈希值來高效地存儲和檢索值。
0
0
把它放在HashSet中。搜索算法將使用插入的每個字符串值的散列。
相關問題
- 1. 散列用鏈表
- 2. 鏈接列表的鏈接列表
- 3. 從鏈接列表中獲取鏈接到鏈接列表中
- 4. 散列表和散列表
- 5. 鏈接列表中的排序列表
- 6. 將列表連接到一個列表中,並在c(鏈接列表的鏈表中)中列出列表
- 7. 列表和鏈接列表
- 8. 鏈接列表中的Java鏈接列表
- 9. Java中鏈接列表的鏈接列表
- 10. 訪問鏈接列表中的鏈接列表變量
- 11. 鏈接列表中的鏈接列表:無法檢索值
- 12. 另一個鏈接列表中的鏈接列表
- 13. 鏈接列表
- 14. 鏈接列表
- 15. 鏈接列表
- 16. 刪除鏈接列表中的鏈接
- 17. Ruby中的鏈接列表
- 18. java中的鏈接列表
- 19. java中的鏈接列表
- 20. C++中的鏈接列表
- 21. C中的鏈接列表
- 22. 如何在鏈接列表中創建鏈接列表?
- 23. C#散列表與C++散列表
- 24. 作爲鏈表在隊列散列表中插入錯誤?
- 25. 正常鏈接列表中的隊列
- 26. 列出鏈接列表
- 27. 散列表在鏈接中成功搜索的平均成本
- 28. 鏈接列表:.next和temp鏈接列表節點的定義
- 29. Python鏈接列表 - 鏈接列表之間的排序
- 30. 將鏈接列表分解爲更小的鏈接列表
這是一個Java特定的問題,還是它要求爲此一般的算法。 – jli
您是否可以將密鑰移動到另一個數據結構中,還是必須使用鏈接列表? – Tudor