算法导论_第十一章_散列表
来源:互联网 发布:手机卡能注册几个淘宝 编辑:程序博客网 时间:2024/05/22 03:28
算法导论_第十章_散列表
散列表大概就是把给每个要存储的数据都用散列函数给定一个关键字,对应到一个槽。
由于不同的信息可能对应同样的关键字,也就是说对应同一个槽,这时要解决其冲突,解决冲突可以用链接法,和开放寻址法。
对于链接法,其对于冲突采取链表进行解决,这样就保证了数据不会发生冲突。
其查找的平均时间为O(1+n/m)
11.3散列函数
一个好的散列函数能够将每个关键字都被等可能地散列到m个槽位中的任何一个,并与其他关键子已散列到哪个槽位无关。
除法散列法:h(k)=k mod m m接近a 但不接近2的任何次数
乘法散列法:h(k)=[m(kA mod 1)]
全域散列法:对于相同的关键字,其能够对应到不同的槽,这就要随机的选择一个作为散列函数。一对关键字发生冲突的原因的概率至多为1/m,我们根据期望的线性性可以得出 E[Y] = n/m = a E[Y] <a+1
所以其有良好的平均运行情况。
设计一个全域散列的函数类
开放寻址法:所谓开放寻址法,就是所有元素都放入散列表中,其避免了存储指针的空间,可以存储更多的节点。
其 re=h(k,j)
这样其为一个探查序列,为其一个排列。
线性探查: m种序列,其会出现集群现象。
二次探查: m种序列,其导致轻度集群。
双重散列: m*m种序列
由于知识水平有限,关于散列表的其他的一些知识,这里不再介绍,待以后补充!
0 0
- 算法导论_第十一章_散列表
- 算法导论 第十一章 散列表
- 直接寻址表_第11章_散列表_算法导论
- 算法导论学习笔记-第十一章-散列表
- 散列表---算法导论第十一章 Hash Tables
- 学习《算法导论》第十一章 散列表 总结一
- 学习《算法导论》第十一章 散列表 总结二
- 算法导论第二章_合并算法_读书笔记
- 算法导论_第二章_算法基础
- 算法导论第十一章散列表的实现(哈希表的实现)
- 《算法导论》第四章_读书笔记
- 算法导论第三章_函数的增长_读书笔记
- 算法导论第二章_插入排序_读书笔记
- 算法导论_第十六章_动态规划
- 算法导论_第三章_函数的增长
- 算法导论_第四章_分治策略
- 算法导论_第六章_堆排序
- 算法导论_第七章_快速排序
- java高并发解决方案
- 73. Set Matrix Zeroes
- AngularJS 全选框事件~
- RecyclerView(实现分割线)
- IE8兼容rgba
- 算法导论_第十一章_散列表
- 【bzoj1864 [Zjoi2006]】三色二叉树
- 自定义Html标签方式
- 深入理解js 闭包
- UNEXPECTED TOP-LEVEL EXCEPTION: java.lang.IllegalArgumentException: method ID not in [0, 0xffff]: 65
- 利用Python进行数据分析环境部署
- 基于加速度传感器智能穿戴:神经网络以及判断过程
- LayoutParams的详解
- CodeForces 699A Launch of Collider