資料結構與演算法
在大小為7(位置0~6)的雜湊表中,以雜湊函數 h(k) = k mod 7 依序存放鍵10、17、24、3。發生碰撞時,使用把位置逐一往後移(6的下一個是0)來尋找空位置的線性探測法。鍵3會存放在哪個位置?
- A位置3
- B位置4
- C位置6
查看答案與解析
正確答案:C. 位置6
4個鍵除以7的餘數都是3,因此都會先檢查位置3。10放入位置3;17因位置3已被占用而放入位置4;24因位置3、4已被占用而放入位置5。3因位置3、4、5都已被占用,所以存放在位置6。如此可見,線性探測法會使被占用的位置聚集在一起(叢集),越晚來的鍵需要檢查的次數越多。
- A. 這是雜湊值本身的位置,但已經放了10。
- B. 這是17放入的位置。其後的位置5也已放入24。
- C. 正確。位置3、4、5都已被占用,因此放入空的位置6。