当前课程知识点:数据结构(下) > 第九章 词典 > (d2)散列:排解冲突(2) > 09D2-2 一利一弊
是的 相对于线性试探
平方探测的确可以在很大程度上缓解数据聚集的现象
这得益于我们此前的构思
仍然 从这副图上我们可以看出
按照这种策略 相邻试探位置之间的间距
将按一个算术级数不断的递增
也就是说 一旦发生冲突
这种策略将会聪明的以一种不断增加的速度跳离这个是非之地
理论上更为详细的分析以及实验的统计都证明了这一点
当然任何事情都是一利一弊
为此我们也可能需要付出一定的代价
因为相对于线性试探策略
平方试探策略将在一定程度上破坏数据访问的局部性
在某些时候 可能会导致IO访问的激增
在一些极端的情况下 系统的缓存功能也将失效
不过好消息是 在通常的情况下问题还不算很严重
我们不妨就此做一个估算
我们知道 在通常的情况下
缓存页面的规模都在若干个KB左右
不失一般性 这里不妨就取做1个KB
如果我们的桶单元只记录相应的引用
那么大致只需要4个字节
每一个缓存页面都足以容纳至少256个桶单元
也就是16的平方
也就是说 如果我们需要做一次额外的IO兑换
必须连续的发生16次冲突
果真如此 我们只能说自己的运气太糟糕了
就这个意义而言 我们也可以说
平方探测所增加的试探位置间距是适度的
当然试探位置间距的加大 又会引来一个附加的问题
你能看出来吗
没错 从直观上看
这样一种方式已经不再是逐个的去试探
因此我们或许会怀疑是否会出现这样一种奇异的现象
也就是在散列表中明明还存在空桶
但是按照这种策略却永远不能发现
-选课之前
--写在选课之前
--宣传片
-考核方式
--考核方式
-OJ系统说明
--关于OJ
--1-注册与登录
--2-界面与选课
--3-提交测试
-关于课程教材与讲义
--课程教材与讲义
-关于讨论区
--关于讨论区
-微信平台
--html
-PA晋级申请
--PA晋级
-(a)概述
--07A-1 纵览
--07A-5 接口
-(a)概述--作业
-(b1)BST:查找
-第七章 二叉搜索树--(b1)BST:查找
-(b2)BST:插入
-(b2)BST:插入--作业
-(b3)BST:删除
-第七章 二叉搜索树--(b3)BST:删除
-(c)平衡与等价
-(c)平衡与等价--作业
-(d1)AVL树:重平衡
-第七章 二叉搜索树--(d1)AVL树:重平衡
-(d2)AVL树:插入
-(d2)AVL树:插入--作业
-(d3)AVL树:删除
-(d3)AVL树:删除--作业
-(d4)AVL树:(3+4)-重构
-(d4)AVL树:(3+4)-重构--作业
-本章测验
--章节测验
-(a1)伸展树:逐层伸展
--习题
-(a2)伸展树:双层伸展
--习题
-(a3)伸展树:算法实现
--习题
-(b1)B-树:动机
--习题
-(b2)B-树:结构
--习题
-(b3)B-树:查找
--习题
-(b4)B-树: 插入
--习题
-(b5)B-树: 删除
--习题
-(xa1)红黑树:动机
--习题
-(xa2)红黑树:结构
--习题
-(xa3)红黑树:插入
--习题
-(xa4)红黑树:删除
-本章测验
--习题
-(b)散列:原理
--09B-3 数组
--09B-4 原理
--09B-5 散列
--09B-6 冲突
--习题
-(c)散列:散列函数
--习题
-(d1)散列:排解冲突(1)
--习题
-(d2)散列:排解冲突(2)
--习题
-(e)桶/计数排序
--习题
-本章测验
--本章测试
-(a1)需求与动机
--习题
-(a2)基本实现
--习题
-(b1)完全二叉堆:结构
--习题
-(b2)完全二叉堆:插入与上滤
--习题
-(b3)完全二叉堆:删除与下滤
--习题
-(b4)完全二叉堆:批量建堆
--习题
-(c)堆排序
--习题
-(xa1)左式堆:结构
--习题
-(xa2)左式堆:合并
--习题
-(xa3)左式堆:插入与删除
-本章测验
--本章测试
-(a)ADT
--习题
-(b1)串匹配
--习题
-(b2)蛮力匹配
--习题
-(c1)KMP算法:从记忆力到预知力
--习题
-(c2)KMP算法:查询表
--习题
-(c3)KMP算法:理解next[]表
--习题
-(c4)KMP算法:构造next[]表
--习题
-(c5)KMP算法:分摊分析
--习题
-(c6)KMP算法:再改进
-(d1)BM_BC算法:以终为始
-(d2)BM_BC算法:坏字符
-(d3)BM_BC算法:构造bc[]
-(d4)BM_BC算法:性能分析
-(e1)BM_GS算法:好后缀
-(e2)BM_GS算法:构造gs表
-(e3)BM_GS算法:综合性能
-(f1)Karp-Rabin算法:串即是数
-(f2)Karp-Rabin算法:散列
-本章测验
--本章测试
-(a1)快速排序:算法A
-- 12a1-5: 实例
--习题
-(a2)快速排序:性能分析
--习题
-(a4)快速排序:变种
-(b1)选取:众数
-(b3)选取:通用算法
--习题
-(c1) 希尔排序:Shell序列
--习题
-(c2)希尔排序:逆序对
-本章测验
--本章测试