Menu
快讀
  • 旅遊
  • 生活
    • 美食
    • 寵物
    • 養生
    • 親子
  • 娛樂
    • 動漫
  • 時尚
  • 社會
  • 探索
  • 故事
  • 科技
  • 軍事
  • 国际
快讀

漫畫|什麽是散列表(哈希表)?

2021 年 3 月 11 日 爱吃包子的物理小主

漫畫 | 什麽是散列表(哈希表)?

漫畫 | 什麽是散列表(哈希表)?

漫畫 | 什麽是散列表(哈希表)?

數組裏面每一個槽位放的是8個字節,用于一個指向外部類的引用。這個外部類可以是鏈表對象,也可以是紅黑樹對象,都可以存一個或者一個以上的元素,也可以是空鏈表或空樹。散列表在某種意義上需要的數組空間可以比直接尋址表要少的很多。

漫畫 | 什麽是散列表(哈希表)?

除了線性探測法,還有二次探測還有雙重探測。

線性探測法是,通過散列函數得到散列值,檢查這個散列值是否被占用,如果被占用,將索引增大,到達數組結尾時折回數組的開頭,直到找到沒有被占用的散列值。

線性探測采用的散列函數爲:

漫畫 | 什麽是散列表(哈希表)?

雙重探測采用的散列函數爲:

漫畫 | 什麽是散列表(哈希表)?

漫畫 | 什麽是散列表(哈希表)?

顯然,短小的鍵簇才能保證較高的效率,不管是插入、查找還是刪除算法。隨著插入的鍵越來越多,較長的鍵簇越來越多,有可能插入一個元素就將兩個很長的鍵簇合並。所以才有了兩次探測和雙重探測,可以降低這種情況出現。

漫畫 | 什麽是散列表(哈希表)?

面試官很客氣,一直送我到門口,我依依不舍地離開這個地方。嗯,面試官真是個好人。

我出去大門,看見一個面試者在拿著A4紙一直默讀,我想那個面試官待會要面這個人吧。小夥子,你運氣真好,希望你面試成功。

相關文章:

  • StackOverflow:你沒見過的七個最好的Java答案
熱點

發佈留言 取消回覆

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

©2026 快讀 | 服務協議 | DMCA | 聯繫我們