考研數据结构,各种算法的经解分析.docVIP

  1. 1、本文档共45页,可阅读全部内容。
  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文档。上传文档
查看更多
考研數据结构,各种算法的经解分析

第一章 ◆ 数据:指能够被计算机识别、存储和加工处理的信息载体。 ◆ 数据元素:就是数据的基本单位,在某些情况下,数据元素也称为元素、结点、顶点、记录。数据元素有时可以由若干数据项组成。 ◆ 数据类型:是一个值的集合以及在这些值上定义的一组操作的总称。        在高级语言程序中又分为:非结构的原子类型和结构类型 ◆ 抽象数据类型(ADT):是指一个数学模型以及定义在该模型上的一组操作。        一个抽象的数据类型的软件模块通常包含 定义和表示和实现        用三元组(D,S,P):数据对象、数据关系、基本操作 ◆ 数据结构:指的是数据之间的相互关系,即数据的组织形式。一般包括三个方面的内容:              数据的逻辑结构、存储结构和数据的运算。  ◆ 逻辑结构:指各数据元素之间的逻辑关系。 ◆ 存储结构:就是数据的逻辑结构用计算机语言的实现。 ◆ 线性结构:数据逻辑结构中的一类,它的特征是若结构为非空集,则该结构有且只有一个开始结点和一个终端结点,并且所有结点都最多只有一个直接前趋和一个直接后继。线性表就是一个典型的线性结构。 ◆ 非线性结构:数据逻辑结构中的另一大类,它的逻辑特征是一个结点可能有多个直接前趋和直接后继。 常用的存储表示方法有四种: ◆ 顺序存储方法:它是把逻辑上相邻的结点存储在物理位置相邻的存储单元里,结点间的     逻辑关系由存储单元的邻接关系来体现。由此得到的存储表示称为顺序存储结构。 ◆ 链接存储方法:它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是   由附加的指针字段表示的。由此得到的存储表示称为链式存储结构。 ◆ 索引存储方法:除建立存储结点信息外,还建立附加的索引表来标识结点的地址。 ◆ 散列存储方法:就是根据结点的关键字直接计算出该结点的存储地址。 渐近时间复杂度的表示法T(n)=O(f(n)),这里的O是数学符号,它的严格定义是若T(n)和f(n)是定义在正整数集合上的两个函数,则T(n)=O(f(n))表示存在正的常数C和n0 ,使得当n≥n0时都满足0≤T(n)≤C·f(n)。用容易理解的话说就是这两个函数当整型自变量n趋向于无穷大时,两者的比值是一个不等于0的常数。这么一来,就好计算了吧。 求某一算法的时间复杂度是关于N的统计,下面的例子很有反面意义 x=91; y=100; while(y0) if(x100) {x=x-10;y--;} else x++; ◆ T(n)=O(1) 这个程序看起来有点吓人,总共循环运行了1000次,但是我们看到n没有? 没。 这段程序的运行是和n无关的,就算它再循环一万年,我们也不管他,只是一个常数阶的函数。   算法的时间复杂度仅与问题的规模相关吗? ◆ No,事实上,算法的时间复杂度不仅与问题的规模相关,还与输入实例中的元素取值等相关,但在最坏的情况下,其时间复杂度就是只与求解问题的规模相关的。我们在讨论时间复杂度时,一般就是以最坏情况下的时间复杂度为准的。 增长率由小至大的顺序排列下列各函数: 2^100, (2/3)^n,(3/2)^n, n^n , , n! ,2^n ,lgn ,n^lgn, n^(3/2) ◇ 分析如下:2^100 是常数阶; (2/3)^n和 (3/2)^n是指数阶,其中前者是随n的增大而减小的; n^n是指数方阶; √n 是方根阶, n! 就是n(n-1)(n-2)... 就相当于n次方阶;2^n 是指数阶,lgn是对数阶 ,n^lgn是对数方阶, n^(3/2)是3/2次方阶。根据以上分析按增长率由小至大的顺序可排列如下: ◆ (2/3)^n 2^100 lgn √n n^(3/2) n^lgn (3/2)^n 2^n n! n^n 算法:是对特定的问题求解步骤地一种描述,是指令的有限序列。有五个基本的特性     有穷性、确定性、可行性、输入、输出     确定性:每条指令不能有二义性,对于同样的输入有同样的输出     可行性:算法中所用到的操作都是已经实现的基本运算或通过有限次能实现的     输入:有0个或多个输入     输出:有一个或多个输出 设计算法的要求(追求的目标) 正确性、可读性、健壮性、效率与低存储量需求 算法原地工作:当空间复杂度为O(1)时,称算法为就地工作(原地工作)。 多型数据类型:是指其值的成分不确定的数据类型。从抽象数据类型的角度看,具有相同的数学抽象特性,故称之为 多型数据类型。 数据结构是一门研究什么内容的学科? 研究非数值计算的程序设计问题中计算机的操作对象以及他们之间的关系和操作等学科 对于一个数据结构,一般包括哪三个方面的讨论? 数据的逻辑结构、存储结

文档评论(0)

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

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

1亿VIP精品文档

相关文档