哈希表
猴子王monkeyfish
这个作者很懒,什么都没留下…
展开
-
哈希冲突解决之开放寻址法
使用开放寻址法是槽本身直接存放数据,在插入数据时如果key所映射到的索引已经有数据了,这说明发生了冲突,这时会寻找下一个槽,如果该槽也被占用了则继续寻找下一个槽,直到找到没有被占用的槽,在查找时也使用同样的策略来进行。由于开发寻址法处理冲突的时候占用的是其他槽的位置,这可能导致后续的key在插入的时候更加容易出现哈希冲突,所以采用开放寻址法的哈希表的装载因子不能太高,否则容易出现性能下降。原创 2015-09-11 16:01:36 · 2404 阅读 · 0 评论 -
哈希冲突之拉链法
解决哈希冲突一种比较直接的办法就是,将大小为M的数组的每一个元素指向一条链表,链表中的每一个节点都存储一个哈希值为该索引的键,这就是拉链法。该方法的基本思想就是选择足够大的M,使得所有的链表都尽可能短,以保证查找的效率。对采用拉链法的哈希实现的查找分为两步,首先是根据哈希值找到对应的链表,然后沿着链表顺序找到相应的键。使用链接法在最坏的情况下,也就是将所有的key映射到同一个槽中了,这样哈希表原创 2015-09-10 19:56:17 · 2623 阅读 · 0 评论 -
哈希表概述
使用哈希表的查找主要有如下两个步骤:1.使用哈希函数将被查找的键转换为数组的索引。这个过程是将长度不同的字符串映射为固定长度的整数值。根据键的类型和哈希表的大小选择不同的哈希函数。2.处理哈希冲突。因为键是所有任意长度的字符串,数量是无穷的,而哈希值长度固定的常数,数量是有限的,同时根据生日悖论,必然有不同的键映射到同一个哈希值,这就产生了哈希冲突。哈希表是一个时间和空间做权衡的数据结原创 2015-09-10 15:12:06 · 934 阅读 · 0 评论 -
浅谈Linux内核哈希表
参考漫谈Linux内核哈希表(1)原创 2015-09-15 09:35:05 · 383 阅读 · 0 评论