数据结构课件1-11全书讲第8讲查找幻灯片.ppt

数据结构课件1-11全书讲第8讲查找幻灯片.ppt

  1. 1、本文档共83页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
构造哈希函数的方法 对数字的关键字可有下列构造方法 若是非数字关键字,则需先对其进行数字化处理 直接定址法 平方取中法 除留余数法 折叠法 随机数法 数字分析法 数字分析法 此方法适合于: 能预先估计出全体关键字的每一位 上各种数字出现的频度 假设关键字集合中的每个关键字都是由 s 位数字组成 (u1, u2, …, us),分析关键字集中的全体, 并从中提取分布均匀的若干位或它们的组合作为地址 平方取中法 以关键字的平方值的中间几位作为存储地址。求“关键字的平方值” 的目的是“扩大差别” ,同时平方值的中间各位又能受到整个关键字中各位的影响 此方法适合于: 关键字中的每一位都有某些数字重 复出现频度很高的现象 折叠法 将关键字分割成若干部分,然后取它们的叠加和为哈希地址。有两种叠加处理的方法:移位叠加和间界叠加 此方法适合于: 关键字的数字位数特别多 直接定址法 哈希函数为关键字的线性函数 H(key) = key 或者 H(key) = a ? key + b 此法适合于: 地址集合的大小 = = 关键字集合的大小 除留余数法 设定哈希函数为: H(key) = key MOD p 其中, p≤m (表长) 并且 p 应为不大于 m 的素数 或是 不含 20 以下的质因子 随机数法 设定哈希函数为: H(key) = Random(key) 其中,Random 为伪随机函数 通常,此方法用于对长度不等 的关键字构造哈希函数 实际造表时,采用何种构造哈希函数的方法取决于建表的关键字集合的情况(包括关键字的范围和形态),总的原则是使产生冲突的可能性降到尽可能地小 处理冲突的方法 “处理冲突” 的实际含义是 为产生冲突的地址寻找下一个哈希地址 1. 开放定址法 2. 链地址法 为产生冲突的地址 H(key) 求得一个地址序列: H0, H1, H2, …, Hs 1≤ s≤m-1 其中:H0 = H(key) Hi = ( H(key) + di ) MOD m i=1, 2, …, s 开放定址法(闭域法) 增量 di 的三种取法 1)线性探测再散列 di = c? i 最简单的情况 c=1 2) 平方探测再散列 di = 12, -12, 22, -22, …, 3) 随机探测再散列 di 是一组伪随机数列 或者 di=i×H2(key) (又称双散列函数探测) { 19, 01, 23, 14, 55, 68, 11, 82, 36 } H(key) = key MOD 11 19 01 23 14 55 68 采用线性探测再散列处理冲突 11 82 36 1 1 2 1 3 6 2 5 1 将所有哈希地址相同的记录都链接在同一链表中 链地址法(开域法) 0 1 2 3 4 5 6 14 01 36 19 82 23 11 68 55 ? ? ? ? ? ? ? { 19, 01, 23, 14, 55, 68, 11, 82, 36 } H(key) = key MOD 7 一棵AVL树或者是空树,或者是具有下列性质的二叉查找树:它的左子树和右子树都是AVL树,且左子树和右子树的高度之差的绝对值不超过1 不平衡 平衡 A B C A B C D E D E 结点的平衡因子 (balance factor) 每个结点附加一个数字, 给出该结点左子树的高度减去右子树的高度所得的高度差, 这个数字即为结点的平衡因子 AVL树任一结点平衡因子只能取 -1, 0, 1 如果一个结点的平衡因子的绝对值大于1, 则这棵二叉查找树就失去了平衡, 不再是AVL树 如果一棵二叉查找树是平衡的, 且有 n个结点,其高度可保持在 O(log2n),平均查找长度也可保持在O(log2n) 5 4 8 2 5 4 8 2 1 是平衡树 不是平衡树 平衡化旋转

文档评论(0)

开心农场 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档