十分钟学会哈希表
Posted 有理想、有本领、有担当的有志青年
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了十分钟学会哈希表相关的知识,希望对你有一定的参考价值。
一、为什么会有哈希表?
是想不通过比较就能找到表中的关键字
二、用的什么方法?
建立关键字与其位置的函数(哈希函数)
三、有什么问题?
不同的关键字通过哈希函数可能会产生相同的位置(产生冲突)
四、怎么解决?
按某种规则,把产生冲突的关键字放在其他位置上(处理冲突)
五、怎么构建哈希表?
建立哈希函数。最常用的构造方法是除留系数法
产生冲突的关键字地址 = key Mod p (p<=表长且为质数)
六、怎么处理冲突?
1.开放定址法
即从冲突位置前后寻找可以存放记录的空闲单元
对于增量d:
2.再哈希法
选择若干个哈希函数,这个不行用另一个
3.溢出区法
创建专门的溢出表,来存放产生冲突的关键字
4.链地址法
用数组+链表式的存储结构
七、性能分析
装载因子
ASL(平均查找长度)
只与 装载因子和处理冲突的方法 有关
计算图中哈希表的ASL
以上是关于十分钟学会哈希表的主要内容,如果未能解决你的问题,请参考以下文章