数据结构A第6章-新.ppt

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

(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)各种搜索算法思想及程序实现方法; (2)各种搜索算法在搜索成功和失败时的ASL; (3)会画二叉判定树 思考:无序表和有序表的顺序搜索的递归函数 * 引 言 集合是一个基本的数学概念。逻辑上,集合中元素间不存在固有的关系。 组织集合的方法很多。例如:集合可以用线性表、搜索树、跳表和散列表表示。 本章将讨论集合的线性表表示,以及2种常用的搜索算法。第7章讨论表示集合的多种搜索树。第8章将介绍跳表和散列表表示的集合。 第6章 集合与搜索 内容提要 1.集合的基本概念 2.定义动态集ADT 3.集合的表示形式 4.顺序搜索 5.二分搜索 6.1 基本概念 课堂提要 第6章 集合与搜索 6.1 基本概念 6.2 顺序搜索 6.3 二分搜索 (a)集合结构 (b)线性结构 (c)树形结构 (d)图结构 图1-2 四种基本的结构关系 1.集合 (1)基本概念 集合:在数学上,集合是不同对象的无序汇集。 例如:集合{1,2,3}与{3,2,1}相同。 元素:集合的对象。在集合中,每个元素仅出现一次。 多重集:元素的无序汇集,其中每个元素可出现一次或多次。 通常,用{}表示无序集。 例如:集合{1,1,2,3}与{3,2,1,1}相同, 但与{1,2.3} 不同 。 6.1.1 集合与搜索 有序集:元素的汇集,其中每个元素可以出现一次或多次,并且出现次序是重要的。通常用()表示有序集。 例如:(1,2,3)与(3,2,1)不同。 (2)集合的运算 数学意义上,集合运算主要有: 求集合的并 求集合的差 求集合的交 判断两集合是否相等 2.动态集 (1)动态集:在数据结构意义上,集合通常是动态的,在集合中可以插入和删除元素,因而称为动态集。 (2)集合元素定义 Templateclass K,class D Struct E { Operator K()const{return key;} //使元素间的比较视为关键字间的比较 K key; D data; } 其中,K称为关键字类型,应为可比较大小的类型。 key 为关键字。除关键字外的其他数据项归入data中。 关键字:数据元素中用来标识一个数据元素的某个数据项。 主关键字:可以唯一标识一个元素的关键字。 次关键字:用以识别若干元素的关键字。 本章中,若无特殊说明,

文档评论(0)

文档精品 + 关注
实名认证
内容提供者

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

版权声明书
用户编号:6203200221000001

1亿VIP精品文档

相关文档