算法入门——散列表 python实现

该内容来自《算法图解》一书,只是对书的内容做一些记录。

 

我们使用散列函数将给定键转化为一个“数组的索引”,理想情况下,不同的key会被转为不同的索引。

关键码和存储位置之间的对应函数是散列函数,也称为哈希函数,hash函数。

散列表查找时间为O(1)

python创建散列表两种方式:

phone_book=dict()#字典
phone_book={}

应用:

  • 查找
  • 防止重复

如防止投票重复

voted={}#创建字典,散列表
def check_voter(name):
    if voted.get(name):#name如果存在字典中
        print("kick them out!")
    else:
        voted[name]=True
        print("let them vote!")
check_voter("tom")  ==》let them vote!
check_voter("mike")  ==》let them vote!
check_voter("mike")  ==》kick them out!
  • 用作网页缓存

 

冲突

处理冲突的方法:https://blog.csdn.net/qq_22238021/article/details/78258605

 

散列表避免冲突需要有:

  • 较低的填装因子==》总数/长度 一般大于0.7就要对散列表长度进行调整
  • 良好的散列函数
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值