数据结构复习内容.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构细补班材料 1、时间复杂度的计算和一些基本概念 什么是数据结构 数据结构是相互之间存在一种或多种特定关系的数据元素的集合,表示为: Data_Structure=(D, S) D:元素有限集 还分成数值类型和非数值类型 S:关系有限集 数据(data)——所有能被计算机识别、存储和处理的符号的集合(包括数字、字符、声音、图像等信息 )。 数据元素(data element)——是数据的基本单位,具有完整确定的实际意义(又称元素、结点,顶点、记录等)。 数据项(Data item)——构成数据元素的项目。是具有独立含义的最小标识单位(又称字段、域、属性 等)。 逻辑结构 数据元素之间的逻辑关系。即从逻辑关系上描述数据,它与数据的存储无关,是独立于计算机的。逻辑结构可细分为4类: 集合结构: 仅同属一个集合 线性结构: 一对一(1:1) 线性 树 结 构: 一对多(1:n) 非线性 图结构: 多对多 (m:n) 非线性 物理结构 物理结构亦称存储结构,是数据的逻辑结构在计算机存储器内的表示(或映像)。它依赖于计算机。 存储结构可分为4大类: 顺序存储结构 链式存储结构 索引存储结构 散列存储结构 数据的运算 数据的运算是在数据的逻辑结构上定义的操作算法。它在数据的存储结构上实现。 最常用的数据运算有5种: 插入、删除、修改、查找、排序 抽象数据类型 抽象数据类型:由用户定义,用以表示应用问题的数据模型。它由基本的数据类型构成,并包括一组相关的操作。 算法 算法是解决某一特定类型问题的有限运算序列。是一系列输入转换为输出的计算步骤。 算法有5个基本特性:有穷性、确定性、可行性、输入和输出 算法评价有4个指标:运行时间、占用空间、正确性和简单性 评价指标中的运行时间,就是用时间复杂度来衡量的。 时间复杂度 表现形式:O(f(n)) 渐进符号(O)的定义:当且仅当存在一个正的常数 C,使得对所有的 n 3 n0 ,有 f(n) £ Cg(n),则 f(n) = O(g(n)) 3n+2=O(n) /* 3n+2£4n for n32 */ 3n+3=O(n) /* 3n+3£4n for n33 */ 100n+6=O(n) /* 100n+6£101n for n310 */ 10n2+4n+2=O(n2) /* 10n2+4n+2£11n2 for n35 */ 6*2n+n2=O(2n) /* 6*2n+n2 £7*2n for n34 */ 常见的时间复杂度,按数量级递增排列依次为:常数阶O(1)、对数阶O(log2n)、线性阶O(n)、 线性对数阶O(nlog2n)、平方阶O(n^2)、立方阶O(n^3)、k次方阶O(n^k)、指数阶O(2^n)。 下面我们通过例子加以说明,让大家碰到问题时知道如何去解决。 1、设三个函数f,g,h分别为 f(n)=100n^3+n^2+1000 , g(n)=25n^3+5000n^2 , h(n)=n^1.5+5000nlgn 请判断下列关系是否成立: (1) f(n)=O(g(n)) (2) g(n)=O(f(n)) (3) h(n)=O(n^1.5) (4) h(n)=O(nlgn) ◆ (1)成立。题中由于两个函数的最高次项都是n^3,因此当n→∞时,两个函数的比值是 一个常数,所以这个关系式是成立的。 ◆ (2)成立。与上同理。 ◆ (3)成立。与上同理。 ◆ (4)不成立。由于当n→∞时n^1.5比nlgn递增的快,所以h(n)与nlgn的比值不是常数,故不成立。 2、设n为正整数,利用大O记号,将下列程序段的执行时间表示为n的函数。 (1) i=1; k=0 while(in) { k=k+10*i;i++; } 解答:T(n)=n-1, T(n)=O(n), 这个函数是按线性阶递增的。 (2) x=n; // n1 while (x=(y+1)*(y+1)) y++; 解答:T(n)=n1/2 ,T(n)=O(n1/2),最坏的情况是y=0,那么循环的次数是n1/2次,这是一个按平方根阶递增的函数。 (3) x=91; y=100; while(y0) if(x100) {x=x-10;y--;} else x++; 解答: T(n)=O(1), 这个程序看起来有点吓人,总共循环运行了1000次,但是我们看到n没有? 没。这段程序的运行是和n无关的,就算它再循环一万年,我们也不管他,只是一个常数阶的函数。 2、线性结构 逻辑结构: 1.描述: 线性表是由n (n=0)个数据元素(结点)a1,a2,….,ai,….,an组成的有限序列。其中,数据元素

文档评论(0)

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

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

1亿VIP精品文档

相关文档