数据结构(C语言版)最全课件完整版ppt全书电子教案全套教学教程PPT课件.ppt

数据结构(C语言版)最全课件完整版ppt全书电子教案全套教学教程PPT课件.ppt

  1. 1、本文档共300页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
完整版课件全套课件完整版ppt整本书ppt全套ppt全套电子教案完整版电子教案

Hash(key)=key mod p (p是一个整数) 关键:如何选取合适的p? 技巧:设表长为m,取p≤m且为质数 除留余数法 (最常用重点掌握) ① 执行速度(即计算哈希函数所需时间); ② 关键字的长度; ③ 哈希表的大小; ④ 关键字的分布情况; ⑤ 查找频率。 构造哈希函数考虑的因素 1.开放定址法 处理冲突的方法 2.链地址法 基本思想:有冲突时就去寻找下一个空的哈希地址,只要哈希表足够大,空的哈希地址总能找到,并将数据元素存入。 1.开放定址法(开地址法) 线性探测法 二次探测法 伪随机探测法 Hi=(Hash(key)+di) mod m ( 1≤i m ) 其中:m为哈希表长度 di 为增量序列 1,2,…m-1,且di=i 一旦冲突,就找下一个空地址存入 线性探测法 关键码集为 {47,7,29,11,16,92,22,8,3}, 设:哈希表表长为m=11; 哈希函数为Hash(key)=key mod 11 0 1 2 3 4 5 6 7 8 9 10 47 7 △ ▲ △ △ 29 11 16 92 22 8 3 ① 47、7、11、16、92没有冲突 ② Hash(29)=7,有冲突,由H1=(Hash(29)+1) mod 11=8,哈希地址8为空,因此将29存入 ③ 3 连续移动了两次 线性探测法 线性探测法的特点 优点:只要哈希表未被填满,保证能找到一个空地址单元存放有冲突的元素。 缺点:可能使第i个哈希地址的同义词存入第i+1个地址,这样本应存入第i+1个哈希地址的元素变成了第i+2个哈希地址的同义词,……,产生“聚集”现象,降低查找效率。 解决方案:二次探测法 二次探测法 关键码集为 {47,7,29,11,16,92,22,8,3}, 设: 哈希函数为Hash(key)=key mod 11 Hi=(Hash(key)±di) mod m 其中:m为哈希表长度,m要求是某个4k+3的质数; di为增量序列 12,-12,22,-22,…,q2 0 1 2 3 4 5 6 7 8 9 10 8 29 7 16 92 47 3 22 11 △ ▲ △ △ Hash(3)=3,哈希地址冲突,由 H1=(Hash(3)+12) mod 11=4,仍然冲突; H2=(Hash(3)-12) mod 11=2,找到空的哈希地址,存入。 伪随机探测法 Hi=(Hash(key)+di) mod m ( 1≤i m ) 其中:m为哈希表长度 di 为随机数 step1 取数据元素的关键字key,计算其哈希函数值(地址)。若该地址对应的存储 空间还没有被占用,则将该元素存入;否则执行step2解决冲突。 step2 根据选择的冲突处理方法,计算关键字key的下一个存储地址。若下一个存储地址仍被占用,则继续执行step2,直到找 到能用的存储地址为止。 开放地址法建立哈希表步骤 平均查找长度和二叉树的形态有关,即, 最好:log2n(形态匀称,与二分查找的判定树相似) 最坏: (n+1)/2(单支树) 查找的性能分析 40 24 55 12 37 12 24 37 40 55 问题:如何提高二叉排序树的查找效率? 尽量让二叉树的形状均衡 左、右子树是平衡二叉树; 所有结点的左、右子树深度之差的绝对值≤ 1 平衡二叉树 平衡因子:该结点左子树与右子树的高度差 1989奥斯卡是最佳短片奖--《Balance》 世界需要平衡,破坏平衡的一方,也许会一时很强势的称霸,最终的结局逃不过孤立和落空 任一结点的平衡因子只能取:-1、0 或 1;如果树中任意一个结点的平衡因子的绝对值大于1,则这棵二叉树就失去平衡,不再是AVL树; 对于一棵有n个结点的AVL树,其高度保持在O(log2n)数量级,ASL也保持在O(log2n)量级。 (a) 平衡树 (b) 不平衡树 练习:判断下列二叉树是否AVL树? 0 0 0 1 1 -1 -1 2 0 0 0 1 -1 如果在一棵AVL树中插入一个新结点,就有

文档评论(0)

BLUED + 关注
实名认证
内容提供者

教师资格证持证人

全网 内容最全课件 价格最低 质量最高 不是之一,是唯一。 每个人使用的办公软件版本不一样,如有个别显示不出的文件,建议使用必威体育精装版版。

版权声明书
用户编号:8070063100000015
领域认证该用户于2023年03月20日上传了教师资格证

1亿VIP精品文档

相关文档