有關哈希表的快速問題。 我目前正在實現一個散列表 使用分開的鏈接 和開放尋址的組合,限制每個桶的鏈表的長度 到一定的長度。單獨的鏈接哈希表 - 何時停止查找
不過,我有麻煩的方式來有效地獲得/本哈希表結構中刪除 思考,並想知道如果我是盲目愚蠢 或是否有人接近前一個類似的問題。
如果我試圖不斷地使用衝突解決方案進行探測,那麼我可能會永遠發現並且永遠不會發現密鑰是否不在表中。這是因爲大多數探測方法不會覆蓋每個桶,我寧可不使用線性探測。
由於大多數探測方法不會覆蓋每個存儲桶,並且跟蹤所查看的存儲桶的開銷很大,因此如果存儲桶被清空但探測路徑中的後續存儲桶不存在,則該算法不能簡單地一旦遇到空桶就停下來。
我非常感謝在這個問題上的任何想法。
謝謝!
二元搜索。如果您的數據庫(哈希映射)包含100萬條記錄,則平均只需要20次搜索操作,而不是500.000次。唯一的要求是,地圖是排序的 – Radinator
我確實認識到一個很好的舊二進制搜索的好處,但地圖沒有排序,並且我覺得整個散列地圖的重點是它們沒有(在正式算法意義上的詞)來獲得良好的性能 –