数据结构A第6章(南邮)2014.pptVIP

  1. 1、本文档共40页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构A第6章(南邮)2014

有序集:元素的汇集,其中每个元素可以出现一次或多次,并且出现次序是重要的。通常用()表示有序集。 例如:(1,2,3)与(3,2,1)不同。 (2)集合的运算 数学意义上,集合运算主要有: 求集合的并 求集合的差 求集合的交 判断两集合是否相等 4. 搜索算法分类 查找 TP391.4/3-841 6.3.3? 二叉判定树 本章小结 集合与搜索的基本概念 无序表的顺序搜索 有序表的顺序搜索 有序表的二分搜索 掌握: (1)各种搜索算法思想及程序实现方法; (2)各种搜索算法在搜索成功和失败时的ASL; (3)会画二叉判定树 思考:无序表和有序表的顺序搜索的递归函数 程序6.6 对半搜索的迭代算法 template class T ResultCode ListSetT::Search(T x)const { int m,low=0,high=n-1; while (low=high) { m=(low+high)/2; if (xl[m]) high=m-1; else if (xl[m]) low=m+1; else { x=l[m];return Success; //搜索成功 } } return NotPresent; //搜索失败 } 可以建立一棵二叉判定树来模拟对半搜索执行过程 二叉判定树: (1)指定元素x的关键字值与表中元素l[m]的关键字值之间的一次比较操作,表现为二叉判定树中的一个内结点,用一个圆形结点表示,并用m标识。如果x==l[m],则算法在该结点处成功终止。 (2)二叉判定树的根结点,代表算法中首先与x比较的元素l[m],用m标识。 (3)结点m的左孩子是当xl[m]时,算法接下去与x比较的元素下标,其右孩子是当xl[m]时,算法接下去与x比较的元素下标。 (4)如果根据算法,在x与l[m]比较之后有xl[m],且算法终止,那么,结点m的左孩子用一个方形结点表示,结点标号为m-1。反之,在x与l[m]比较之后有xl[m],且算法终止,那么,结点m的右孩子用一个方形结点表示,结点标号为m。方形结点称为外结点。换句话说,如果算法在方形结点m处终止,这意味着: (a)当0?mn-1时,l[m]xl[m+1]之间; (b)当m=-1时,xl[0]; (c)当m=n-1时,xl[n-1]。 (5)从根结点到每个内结点的一条路径代表成功搜索的一条比较路径。如果搜索成功,则算法在内结点处终止,否则算法在外结点处终止。 二叉判定树的建立: (1)根结点:第一次比较的元素的结点 (2)结点的序号:元素的下标; (3)根结点左子树的根结点: 左边子表第一次比较的元素的结点下标; (4)根结点右子树的根结点:右边子表第一次比较的元素的结点下标; (5)?:内结点 (6) :外结点;等于其父结点的序号减1(左孩子); 或等于其父结点的序号(右孩子); (7)从根结点到内结点的路径代表一条搜索路径。 搜索成功,算法在内结点处终止; 否则在外结点出终止。 [ Low 21 30 36 41 52 54 66 72 83 97 ] high 52 [ Low ] high 72 21 30 36 41 52 54 66 72 83 97 21 30 36 41 52 54 66 72 83 97 ] [ 54 21 30 36 41 52 54 66 72 83 97 ] [ 下标 0 1 2 3 4 5 6 7 8 9 查找关键66 定理6.1 对半搜索算法在成功搜索的情况下,关键字值之间的比较次数不超过?log2n?+1。对于不成功的搜索,算法需要作?log2n?或?log2n?+1次比较。 定理6.2 对半搜索算法在搜索成功时的平均时间复杂度为O(log2n)。 对于成功搜索,假定查找表中任何一个元素的概率是相等的,为1/n。 对于失败搜索,假定待查元素x的值落在区间(l[m],l[m+1]),0?mn-1,区间xl[0]和区间xl[n-1],总共 n+1个区间中的概率是相等的。 那么, As(n)=(I+n)/n=I/n+1,Au(n)=E/(n+1)=O(log2n) 这里,I是二叉判定树的内路径长度,E是外

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

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

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档