mirror of
https://github.com/krahets/hello-algo.git
synced 2025-01-23 06:00:27 +08:00
fix(hash_collision): typo of zh-Hant translation in "線性探查" section (#1599)
* Fix typo of zh-Hant translation in "線性探查" section * Fix the same typo in hash summary Q&A section * Update hash_collision.md * Update summary.md --------- Co-authored-by: Yudong Jin <krahets@163.com>
This commit is contained in:
parent
a36b301464
commit
636b0738fa
@ -64,7 +64,7 @@
|
||||
|
||||
然而,**懶刪除可能會加速雜湊表的效能退化**。這是因為每次刪除操作都會產生一個刪除標記,隨著 `TOMBSTONE` 的增加,搜尋時間也會增加,因為線性探查可能需要跳過多個 `TOMBSTONE` 才能找到目標元素。
|
||||
|
||||
為此,考慮線上性探查中記錄遇到的首個 `TOMBSTONE` 的索引,並將搜尋到的目標元素與該 `TOMBSTONE` 交換位置。這樣做的好處是當每次查詢或新增元素時,元素會被移動至距離理想位置(探測起始點)更近的桶,從而最佳化查詢效率。
|
||||
為此,考慮在線性探查中記錄遇到的首個 `TOMBSTONE` 的索引,並將搜尋到的目標元素與該 `TOMBSTONE` 交換位置。這樣做的好處是當每次查詢或新增元素時,元素會被移動至距離理想位置(探測起始點)更近的桶,從而最佳化查詢效率。
|
||||
|
||||
以下程式碼實現了一個包含懶刪除的開放定址(線性探查)雜湊表。為了更加充分地使用雜湊表的空間,我們將雜湊表看作一個“環形陣列”,當越過陣列尾部時,回到頭部繼續走訪。
|
||||
|
||||
|
@ -38,7 +38,7 @@
|
||||
|
||||
多次雜湊是開放定址的一種,開放定址法都有不能直接刪除元素的缺陷,需要透過標記刪除。標記為已刪除的空間可以再次使用。當將新元素插入雜湊表,並且透過雜湊函式找到標記為已刪除的位置時,該位置可以被新元素使用。這樣做既能保持雜湊表的探測序列不變,又能保證雜湊表的空間使用率。
|
||||
|
||||
**Q**:為什麼線上性探查中,查詢元素的時候會出現雜湊衝突呢?
|
||||
**Q**:為什麼在線性探查中,查詢元素的時候會出現雜湊衝突呢?
|
||||
|
||||
查詢的時候透過雜湊函式找到對應的桶和鍵值對,發現 `key` 不匹配,這就代表有雜湊衝突。因此,線性探查法會根據預先設定的步長依次向下查詢,直至找到正確的鍵值對或無法找到跳出為止。
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user