- 1、本文档共21页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C语言公共基础前内容
第十二章 算法与数据结构
12.1 算法的基本概念
该节知识点所占试题比重为12%,属于重点考查对象,基本上每次必考,主要考查算法的定义和对算法复杂度的理解。历次试题分值在0-4分之间波动。
12.1.1 考点1: 算法的定义
算法是对一个问题求解步骤的一种描述,是求解问题的方法,它是指令的有限序列,其中每条指令表示一个或者多个操作。一般来说,一个算法具有以下5个主要特性。
有穷性:一个算法(对任何合法的输入)在执行有穷步后能够结束,并且在有限的时间内完成。
确定性:算法中的每一步都有确切的含义。
可行性:算法中的操作能够用已经实现的基本运算执行有限次来实现。
输入:一个算法有零个或者多个输入,零个输入就是算法本身确定了初始条件。
输出:一个算法有一个或者多个输出,以反映出数据加工的结果。
12.1.2 考点2:算法复杂度
算法复杂度包括时间复杂度和空间复杂度,是衡量一个算法好坏的度量。
时间复杂度
在一般情况下,算法中的基本操作重复执行的次数是问题规模n的函数f(n),那么算法的时间复杂度可记作:K(n)=O(f(n))
表示随着问题规模n的增大,算法执行时间的增长率与f(n)的增长率相同。
空间复杂度
与时间复杂度相似,空间复杂度是算法所需空间的度量。
G(n)= O(f(n))
其中,n是问题的规模,表示随着问题规模n的增大,算法执行空间的增长率与f(n)的增长率相同。
12.2 数据结构的定义
该节知识点所占试题比重为12%,属于重点考查对象,基本上每次必考,主要考查数据的逻辑结构和存储结构。历次试题分值在0-4分之间波动。
12.2.1考点1:什么是数据结构
数据结构是计算机科学与技术领域广泛使用的一个基本术语,用来反映数据的内部构成。在给出数据结构的定义前,我们先给出几个概念和术语。
数据是对客观事物的符号表示,在计算机科学中,指所有能输入到计算机并被计算机处理的符号的总称。
数据元素是数据的基本单位,一般由若干数据项构成,数据项是数据的最小单位。
数据对象是一组数据元素的集合,数据元素之间存在一种或多种特定关系。
下面给出数据结构的形式定义。
数据结构是一个二元组Data_Structure=(D,S),其中D是一个数据元素的有限集合,S是D上的关系的有限集合。
一般来说,数据结构包括数据的逻辑结构、数据的存储结构、数据的操作3个方面的内容。
数据的逻辑结构又称为数据的外部结构,指各数据元素之间的逻辑关系,反映人们对数据含义的解释。
我们可以用一个二元组(K,R)来表示数据的逻辑结构,其中,K是结点集合,R是一组定义在K上的二元关系,举例来说,把一个日期作为数据结点,如由2006年6月20日,2006年6月21日两个结点构成K,按照常规,这两个结点有一个先后关系R={(2006年6月20日,2006年6月21日)}。
数据的逻辑结构反映数据的逻辑关系,与数据的存储没有关系,是独立于计算机的,它有两大类逻辑结构:线性结构和非线性结构。
如果数据元素a和数据元素b之间存在序偶关系(a,b),a领先于b,称a是b的直接前驱,b是a的直接后继。
线性结构具有的逻辑特征是在数据元素的非空集合中,“第一个”数据元素和“最后一个”数据元素均是有且只有一个。除了“第一个”数据元素外,其他数据元素有且只有一个前驱,除了“最后一个”数据元素外,其他元素有且只有一个后继。例如:线性表就是一种线性结构。
非线性结构具有的逻辑特征是在数据元素的非空集合中,一个结点可能有多个直接前驱和直接后继。例如,树和图就是非线性结构。
数据的存储结构又称为数据的物理结构,是指数据的逻辑结构在计算机中的表示,即逻辑结构在计算机中的实现。一个数据的逻辑结构可以有多种存储结构。数据的存储结构要充分利用存储器的“空间相邻”和“随机访问”的特点,利用存储地址顺序单元空间相邻关系来表达数据逻辑结构的特点,每个数据元素通常被存储在一片连续地址的空间内,建立一种由逻辑结构到存储空间的映射。
下面介绍4种基本的存储映射方法。
顺序映射
用一个连续的存储区来存储结点数据的存储映射方法称为顺序映射法。顺序存储用一组相邻的地址空间来存储结点,结点之间的逻辑关系由存储单元的自然顺序关系来表示。
链式映射
存储结点不仅包含数据元素,还包含一个附加的指针字段,用来指向与本结点有逻辑关系的其他结点,这种方法称为链式映射法。链式映射法是用指针来表达数据元素之间的逻辑关系的。一般情况下,把数据结点分成数据字段和指针字段,数据字段用来存储结点的数据,指针字段用来存储直接后继结点的开始地址。
链式映射法是经常使用的一种方法,特别适合于那些经常增删结点的复杂数据结构。
索引映射
索引映射法是顺序映射法的一种推广,它增加了一个索引表来存储结点的指针。索引表的存储空间是附加在结点空
文档评论(0)