數組裏面每一個槽位放的是8個字節,用于一個指向外部類的引用。這個外部類可以是鏈表對象,也可以是紅黑樹對象,都可以存一個或者一個以上的元素,也可以是空鏈表或空樹。散列表在某種意義上需要的數組空間可以比直接尋址表要少的很多。
除了線性探測法,還有二次探測還有雙重探測。
線性探測法是,通過散列函數得到散列值,檢查這個散列值是否被占用,如果被占用,將索引增大,到達數組結尾時折回數組的開頭,直到找到沒有被占用的散列值。
線性探測采用的散列函數爲:
雙重探測采用的散列函數爲:
顯然,短小的鍵簇才能保證較高的效率,不管是插入、查找還是刪除算法。隨著插入的鍵越來越多,較長的鍵簇越來越多,有可能插入一個元素就將兩個很長的鍵簇合並。所以才有了兩次探測和雙重探測,可以降低這種情況出現。
面試官很客氣,一直送我到門口,我依依不舍地離開這個地方。嗯,面試官真是個好人。
我出去大門,看見一個面試者在拿著A4紙一直默讀,我想那個面試官待會要面這個人吧。小夥子,你運氣真好,希望你面試成功。







