字典的底层原理,首先会对key进行哈西运算,变成16进制定长,长度为32位,再进行某个算法,比如余%5,运算,再存入,如果产生了哈西碰撞,不同的语言处理方式,不一样,python则是对它进行二次哈西运算,重新计算新位置,删除键的时候,哈西的探测链,如果看到这个空位置,(已经删除原来这里的键,但是上一次进行一次哈西的值变位置了,他知道是伪删除,就会自动进行哈西二次运算,计算出那个位置),因为如果只开辟一开始的五个空间肯定是不够存储的,一旦空闲位置,少于用量的1/3则会进行扩容,此时,会进行重新排座位。(空间换时间,因为空闲位置比较多)。
2020-11-11
最新推荐文章于 2024-06-26 21:49:41 发布