- 1、本文档共22页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第1章 数据结构与算法
考点1:算法 ★★
考点点拨:主要考查算法的基本概念,算法的时间复杂度和空间复杂度。
【试题1】算法的时间复杂度是指 。
A) 执行算法程序所需要的时间
B) 算法程序的长度
C) 算法执行过程中所需要的基本运算次数
D) 算法程序中的指令条数
答案:C
分析:所谓算法的时间复杂度,是指执行算法所需要的计算工作量。算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n)。
其中n是问题的规模。例如,两个n阶矩阵相乘所需要的基本运算(即两个实数的乘法)次数为n3,即计算工作量为n3,也就是时间复杂度为n3。
理论链接:算法时间复杂度
在具体分析一个算法的工作量时,还会存在这样的问题:对于一个固定的规模,算法所执行的基本运算次数还可能与特定的输入有关,而实际上又不可能将所有可能情况下算法所执行的基本运算次数都列举出来。例如,“在长度为n的一维数组中查找值为x的元素”,若采用顺序搜索法,即从数组的第一个元素开始,逐个与被查值x进行比较。显然,如果第一个元素恰为x,则只需要比较1次。但如果x为数组的最后一个元素,或者x不在数组中,则需要比较n次才能得到结果。因此,在这个问题的算法中,其基本运算(即比较)的次数与具体的被查值x有关。
【试题2】算法的空间复杂度是指 。
A) 算法程序的长度
B) 算法程序中的指令条数
C) 算法程序所占的存储空间
D) 算法执行过程中所需要的存储空间
答案:D
分析:一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。其中额外空间包括算法程序执行过程中的工作单元以及某种数据结构所需要的附加存储空间(例如,在链式结构中,除了要存储数据本身外,还需要存储链接信息)。如果额外空间量相对于问题规模来说是常数,则称该算法是原地(in place)工作的。在许多实际问题中,为了减少算法所占的存储空间,通常采用压缩存储技术,尽量减少不必要的额外空间。
【试题3】一个算法通常由两种基本要素组成:一是对数据对象的运算和操作,二是算法的 。
答案:控制结构
分析:一个算法通常由两种基本要素组成:一是对数据对象的运算和操作,二是算法的控制结构。
(1) 算法中对数据的运算和操作
每个算法实际上是按解题要求从环境能进行的所有操作中选择合适的操作所组成的一组指令序列。因此,计算机算法就是计算机能处理的操作所组成的指令序列。
通常,计算机可以执行的基本操作是以指令的形式描述的。一个计算机系统能执行的所有指令的集合,称为该计算机系统的指令系统。计算机程序就是按解题要求从计算机指令系统中选择合适的指令所组成的指令序列。在一般的计算机系统中,基本的运算和操作有以下四类。
算术运算:主要包括加、减、乘、除等运算;
逻辑运算:主要包括“与”、“或”、“非”等运算;
关系运算:主要包括“大于”、“小于”、“等于”、“不等于”等运算;
数据传输:主要包括赋值、输入、输出等操作。
(2) 算法的控制结构
一个算法的功能不仅取决于所选用的操作,而且还与各操作之间的执行顺序有关。算法中各操作之间的执行顺序称为算法的控制结构。算法的控制结构给出了算法的基本框架,它不仅决定了算法中各操作的执行顺序,而且也直接反映了算法的设计是否符合结构化原则。描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。一个算法一般都可以用顺序、选择、循环三种基本控制结构组合而成。
【试题4】在同一个问题规模下,如果算法执行所需的基本运算次数取决于某一特定输入时,可以用平均性态和 两种方法来分析算法的工作量。
答案:最坏情况复杂性
分析:所谓平均性态分析,是指用各种特定输入下的基本运算次数的加权平均值来度量算法的工作量。设x是所有可能输入中的某个特定输入,p(x)是x出现的概率(即输入为x的概率),t(x)是算法在输入为x时所执行的基本运算次数,则算法的平均性态定义为
A(n)=
其中Dn表示当规模为n时,算法执行时所有可能输入的集合。这个式子中的t(x)可以通过分析算法来加以确定;而p(x)必须由经验或用算法中有关的一些特定信息来确定,通常是不能解析地加以计算的。如果确定p(x)比较困难,则会给平均性态的分析带来困难。
所谓最坏情况复杂性分析,是指在规模为n时,算法所执行的基本运算的最大次数。它定义为
W(n)={t(x)}
显然,W(n)的计算要比A(n)的计算方便得多。由于W(n)实际上是给出了算法工作量的一个上界,因此,它比A(n)更具有实用价值。
【试题5】算法设计基本方法主要有 、
文档评论(0)