网站大量收购独家精品文档,联系QQ:2885784924

第8章+查找报告.ppt

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

【算法8.7】B-树查找算法(P295/算法8.7) public Result searchBTree(NodeT root, T key) { …… } 2.红黑树的查找 由于每一棵红黑树都是一棵二叉排序树,因此,在对红黑树进行查找时,可以采用运用于普通二叉排序树上的查找算法,在查找过程中不需要颜色信息。 对普通二叉排序树进行查找的时间复杂性为O(h),其中h为二叉排序树的深度,对于红黑树则为O(log2n)。由于在查找普通二叉排序树、AVL树和红黑树时,所用代码是相同的,并且在最坏情况下,AVL树的深度最小,因此,在那些以查找操作为主的应用程序中,在最坏情况下,AVL树都能获得最好的时间复杂性。 基本思想是:除基本的存储区(称为基本表)之外,另建一个公共溢出区(称为溢出表),当不发生冲突时,数据元素可存入基本表中;当发生冲突时,不管哈希地址是什么,数据元素都存入溢出表。查找时,对给定值K通过哈希函数计算出哈希地址i,先与基本表对应的存储单元相比较,若相等,则查找成功;否则,再到溢出表中进行查找。 主要思想是:当发生冲突时,再用另一个哈希函数来得到一个新的哈希地址,若再发生冲突,则再使用另一个函数,直至不发生冲突为止。 预先需要设置一个哈希函数的序列: Hi=RHi(key) (i=1,2,…,k)。 作业 作业 作业 8.4.2 处理冲突的方法-公共溢出法 8.4.2 处理冲突的方法-再哈希法 8.4.4 哈希表的查找及其分析 哈希表的查找 哈希表查找性能的分析 查找过程和造表过程一致。假设采用开放定址处理冲突,则查找过程为: 对于给定值 K, 计算哈希地址 i = H(K) 若 r[i] = NULL 则查找不成功 若 r[i].key = K 则查找成功 否则 “求下一地址 Hi” ,直至 r[Hi] = NULL (查找不成功) 或 r[Hi].key = K (查找成功) 为止。 哈希表的查找 1) 选用的哈希函数; 2) 选用的处理冲突的方法; 3) 哈希表饱和的程度,装载因子 α=n/m 值的大小(n—记录数,m—表的长度) 决定哈希表查找的ASL的因素: 从查找过程得知,哈希表查找的平均查找长度实际上并不等于零。 哈希表查找性能的分析 一般情况下,可以认为选用的哈希函数是“均匀”的,则在讨论ASL时,可以不考虑它的因素。 因此,哈希表的ASL是处理冲突方法和装载因子的函数。 例如:前述例子 线性探测处理冲突时, ASL = 双散列探测处理冲突时,ASL = 链地址法处理冲突时, ASL = 22/9 14/9 13/9 哈希表查找性能的分析 线性探测再散列 链地址法 随机探测再散列 可以证明:查找成功时有下列结果: 哈希表查找性能的分析 从以上结果可见: 哈希表的平均查找长度是 ? 的函数,而不是 n 的函数。 这说明,用哈希表构造查找表时,可以选择一个适当的装填因子 ? ,使得平均查找长度限定在某个范围内。 —— 这是哈希表所特有的特点。 哈希表查找性能的分析   1.理解“查找表”的结构特点以及各种表示方法的适用性;   2.熟练掌握以顺序表或有序表表示静态查找表时的查找方法;   3.熟悉静态查找树的构造方法和查找算法,理解静态查找树和折半查找的关系;   4.熟练掌握二叉查找树的构造和查找方法;   5.理解二叉平衡树、B树的构造特点;   6.熟练掌握哈希表的构造方法,深刻理解哈希表与其它结构的表的实质性的差别;   7.掌握描述查找过程的判定树的构造方法,以及按定义计算各种查找方法在等概率情况下查找成功时的平均查找长度。 学习总结 1.画出长度为10的有序表进行二分查找的判定 树,并求其等概率时查找成功的平均长度。 2.已知如下所示长度为12的表(Jan,Feb,Mar,Apr,May,June,July,Aug,Sep,Oct,Nov,Dec) (1)试按表中元素的顺序依次插入一棵初始为空的二叉排序树,画出插入完成之后的二叉排序树,并求其在等概率的情况下查找成成功的平均查找长度。 (2)若对表中元素先进行构成有序表,求在等概率的情况下以此有序表进行二分查找时查找成功的平均查找长度。 3. 书P315/三、1. 基于SeqList类,设计带监视哨的顺序查找算法,要求把监视哨设置在n号单元(其中n为查找表的表长)。 4.设散列表的长度为13,散列函数为 H(K)=K%13,给定的关键字序列为: 19,

文档评论(0)

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

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

1亿VIP精品文档

相关文档