赞
踩
本文是基于k神的Hello 算法的读书笔记,请支持实体书。
https://www.hello-algo.com/chapter_paperbook/
通过建立key与value的映射,实现高效的查找。我们向哈希表输入一个值Key,就能在O(1)的时间内得到值Value。
哈希表的增删改查,时间复杂度否是O(1)
# 初始化哈希表 hmap: dict = {} # 添加操作 # 在哈希表中添加键值对 (key, value) hmap[12836] = "小哈" hmap[15937] = "小啰" hmap[16750] = "小算" hmap[13276] = "小法" hmap[10583] = "小鸭" # 查询操作 # 向哈希表输入键 key ,得到值 value name: str = hmap[15937] # 删除操作 # 在哈希表中删除键值对 (key, value) hmap.pop(10583)
代码略
https://www.hello-algo.com/chapter_hashing/hash_map/#612
这里实际上模拟了一个简单的hash算法,即
index = hash(key) % capacity
上面这个例子,key的值足够大足够多时,就会产生相同的index值,这就是哈希冲突。
一个简单的解决哈希冲突的方法是扩容,但这样效率太低,所以解决哈希冲突遵循以下两个原则:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。