您的位置:首页 > 理论基础 > 数据结构算法

平方探测法的证明《数据结构与算法分析(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则表示未检查到冲突)

也就是说,如果我们要插入一个元素,那么我们会依次检查这么些位置

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个位置,且书中已经证明了这些位置都是互异的!所以肯定能插入一个新的元素。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐