哈希集合、数独求解与映射的深入解析
1. 哈希集合(HashSet)
哈希集合是一种常用的数据结构,它利用哈希函数将元素映射到一个数组的特定位置。当两个对象计算得到的索引相同时,就会发生冲突。为了解决冲突,这里采用了线性探测法。
1.1 线性探测法
线性探测法是指在发生冲突时,依次检查数组中的下一个位置,直到找到一个可用的位置。可用位置可以是 None 或者 __Placeholder 对象。以下是添加元素的辅助函数代码:
def __add(item,items):
idx = hash(item) % len(items)
loc = -1
while items[idx] != None:
if items[idx] == item:
# item already in set
return False
if loc < 0 and type(items[idx]) == HashSet.__Placeholder:
loc = idx
idx = (idx + 1) % len(items)
if loc < 0:
loc = idx
items[loc] = item
return True
该函数的工作流程如下:
1. 计算元素的哈希值并取模得到初始索引。
2. 检
超级会员免费看
订阅专栏 解锁全文
12

被折叠的 条评论
为什么被折叠?



