平方探测法的证明《数据结构与算法分析(C语言描述)第二版》P119
2017-02-25 11:24
483 查看
定理:如果使用平方探测法,且表的大小为素数,那么当表至少有一半是空的时候,总能够插入一个新的元素。
(这里TableSize/2都是取小,如TableSize=11,则TableSize/2=5)
书中证明的是
在0<=i< = TableSize/2, Hash(X)+i^2都是不相同的。 (注明:这里i=0其实也是符合的,只是i=0则表示未检查到冲突)
也就是说,如果我们要插入一个元素,那么我们会依次检查这么些位置
一共TableSize/2+1个位置。(书中就是证明这些位置都是互异的)
而表中至少一半为空,也就是至多有一半的位置存在关键值,即至多TableSize/2个位置有元素,而我们会去检查能否插入的位置有TableSize/2+1个位置,且书中已经证明了这些位置都是互异的!所以肯定能插入一个新的元素。。
(这里TableSize/2都是取小,如TableSize=11,则TableSize/2=5)
书中证明的是
在0<=i< = TableSize/2, Hash(X)+i^2都是不相同的。 (注明:这里i=0其实也是符合的,只是i=0则表示未检查到冲突)
也就是说,如果我们要插入一个元素,那么我们会依次检查这么些位置
Hash(X),Hash(X)+1^2,Hash(X)+2^2,……Hash(X)+i^2,……,Hash(X)+(TableSize/2)^2
一共TableSize/2+1个位置。(书中就是证明这些位置都是互异的)
而表中至少一半为空,也就是至多有一半的位置存在关键值,即至多TableSize/2个位置有元素,而我们会去检查能否插入的位置有TableSize/2+1个位置,且书中已经证明了这些位置都是互异的!所以肯定能插入一个新的元素。。
相关文章推荐
- 最小正子序列(序列之和最小,同时满足和值要最小)(数据结构与算法分析——C语言描述第二章习题2.12第二问)
- 数据结构与算法分析——C语言描述
- 《数据结构与算法分析——c语言描述》 练习6.32 答案
- 由《数据结构与算法分析-C语言描述》开始的数据结构与算法学习之旅
- 二叉查找树 - C语言实现(摘自数据结构与算法分析 C语言描述)
- 散列-分离链接法(数据结构与算法分析-C语言描述)
- 《数据结构与算法分析-C语言描述》详解-Sec2(三)幂指数运算
- 数据结构与算法分析——C语言描述3.3
- 1:数据结构与算法分析(c语言描述)引论(1)
- 数据结构与算法分析(C语言描述)源代码与答案
- 优先队列(堆) - C语言实现(摘自数据结构与算法分析 C语言描述)
- 开放定址散列表(平方探测法)实现文件C语言
- 使用数组实现队列----《数据结构与算法分析---C语言描述》
- 队列 - C语言实现(摘自数据结构与算法分析 C语言描述)
- AVL(Adelson-Velskii和Landis)树 - C语言实现(摘自数据结构与算法分析 C语言描述)
- 《数据结构与算法分析-C语言描述》第二章部分习题思路
- 排序 (插入排序,快速排序,希尔排序)数据结构与算法分析-C语言描述
- 《数据结构与算法分析》C语言描述 Day One
- 数据结构与算法分析(C语言描述)L1.1
- 优先队列(堆) - C语言实现(摘自数据结构与算法分析 C语言描述)