Uh oh!
There was an error while loading.Please reload this page.
- Notifications
You must be signed in to change notification settings - Fork810
Open
Description
大佬,你这里哈希表的二次探测函数,会出现无限循环的情况。
def_find_slot_for_insert(self,key):index=self._hash(key)_len=len(self._table)whilenotself._slot_can_insert(index):# 直到找到一个可以用的槽index= (index*5+1)%_lenreturnindexdef_slot_can_insert(self,index):return (self._table[index]isHashTable.EMPTYorself._table[index]isHashTable.UNUSED)
如上,如果index为5,此时5的位置上如果存在数据了,则需要继续找。假设此时_len为7,index为5, 则:(5 * 5 + 1)% 7 结果最终还是5,循环就无法跳出。
Metadata
Metadata
Assignees
Labels
No labels