第17讲查找1案例.pptx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构;;1.熟练掌握顺序表和有序表(折半查找)的查找算法及其性能分析方法; 2.熟练掌握二叉排序树的构造和查找算法及其性能分析方法; 3. 理解二叉排序树的插入算法和删除方法; 4.熟练掌握哈希函数(除留余数法)的构造 5.熟练掌握哈希函数解决冲突的方法及其特点 ;7.1 查找的基本概念 7.2 线性表的查找 7.3 树表的查找 7.4 哈希表的查找;第17讲;7.1 查找的基本概念;关键字的平均比较次数,也称平均搜索长度ASL(Average Search Length);查找的分类: 比较式查找法:直接比较关键字 (1)线性表的静态查找 (2)二叉排序树的动态查找 计算式查找法:计算记录所在的地址。 也称为HASH(哈希)查找法。;7.2 线性表的查找;顺序查找;int LocateELem(SqList L,ElemType e) { for (i=0;i L.length;i++) if (L.elem[i]==e) return i+1; return 0; };空间复杂度:一个辅助空间。 时间复杂度: 1) 查找成功时的平均查找长度 设表中各记录查找概率相等 ASLs(n)=(1+2+ ... +n)/n =(n+1)/2 2)查找不成功时的平均查找长度 ASLf =n+1;n个数存在一维数组A[1..n]中,在进行顺序查找时,这n个数的排列有序或无序其平均查找长度ASL不同。 ;折半查找;若k==R[mid].key,查找成功 若kR[mid].key,则high=mid-1 若kR[mid].key,则low=mid+1;int Search_Bin(SSTable ST,KeyType key){ //若找到,则函数值为该元素在表中的位置,否则为0 low=1;high=ST.length; while(low=high){ mid=(low+high)/2; if(key==ST.R[mid].key) return mid; else if(keyST.R[mid].key) high=mid-1;//前一子表查找 else low=mid+1; //后一子表查找 } return 0; //表中不存在待查元素 } ;;查找过程:每次将待查记录所在区间缩小一半,比顺序查找效率高,时间复杂度 适用条件:; 习题:给定关键字序列11,78,10,1,3,2,4,21,画出二分查找判定树,并求出等概率下成功平均查找长度和失败平均查找长度。查找50需要比较几次能得出结论?;;分块查找(块间有序,块内无序);查找效率:ASL=Lb+Lw;7.3 树表的查找;二叉排序树或是空树,或是满足如下性质的二叉树: (1)若其左子树非空,则左子树上所有结点的值均小于根结点的值; (2)若其右子树非空,则右子树上所有结点的值均大于根结点的值; (3)其左右子树本身又各是一棵二叉排序树;练习;45;二叉排序树的操作-查找;二叉排序树的操作-插入;45;二叉排序树的操作-生成;不同插入次序的序列生成不同形态的二叉排序树;二叉排序树的操作-删除;删除叶结点,只需将其双亲结点指向它的指针清零,再释放它即可。 被删结点缺右子树,可以拿它的左子女结点顶替它的位置,再释放它。 被删结点缺左子树,可以拿它的右子女结点顶替它的位置,再释放它。 被删结点左、右子树都存在,可以在它的右子树中寻找中序下的第一个结点(关键码最小),用它的值填补到被删结点中,再来处理这个结点的删除问题。 ;第i层结点需比较i次。在等概率的前提下,上述两图的平均查找长度为:;结点数为n的二叉排序树(二叉查找树)的最小高度为( ),最大高度为( )。 A、n B、 C、log2n D、;问题:如何提高二叉排序树的查找效率? 尽量让二叉树的形状均衡;任一结点的平衡因子只能取:-1、0 或 1;如果树中任意一个结点的平衡因子的绝对值大于1,则这棵二叉树就失去平衡,不再是AVL树;; 习题:利用逐点??入建立序列( 70,90,63,67,55,10,98,83,42,45,58 )对应的二叉排序树以后,查找元素42要进行_____次元素间的比较。 A. 4 B.5 C. 6 D.7;70

文档评论(0)

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

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

1亿VIP精品文档

相关文档