文档详情

数据结构和算法和查找排序.doc

发布:2018-08-27约1.15万字共13页下载文档
文本预览下载声明
1.1算法 考点1 算法的基本概念 考试链接: 考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。 1.算法的基本概念及特征 ①算法的概念(考试的重点),是指解题方案的准确而完整的描述, 它由两种基本要素组成: 一是对数据对象的运算和操作; (在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。) 二是算法的控制结构。 (算法中各操作之间的执行顺序称为算法的控制结构。 描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。) ②算法的特点具有可行性、确定性、有穷性、拥有足够的情报等特征。其中,确定性和有穷性是考试的重点。 算法的确定性,是指算法中的每一步骤都必须有明确定义,不允许有模棱两可的解释,也不允许有多义性。 算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。 考点2 算法复杂度 考试链接: 考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。 一个算法质量的好坏可从算法的时间复杂度和空间复杂度两个方面来衡量。算法的复杂度也是每次考试的重点,要注意明确有关概念。 算法的时间复杂度是指算法所需要的计算工作量;算法的空间复杂度是指执行这个算法所需要的内存空间。 1.算法的时间复杂度 算法的时间复杂度是指执行算法所需要的计算工作量。 同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。这表明使用绝对的时间单位衡量算法的效率是不合适的。撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法运行工作量的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。即 算法的工作量=f(n) 下一个程序的算法时间与该基本操作(乘法)重复执行的次数n3成正比,记做T(n)=o(n3) for(i=1;i=n;i++) for(j=1;j=n;j++) { c[i][j]=0; for(k=1;k=n;k++) c[i][j]+=a[i][k]*b[i][k]; } ①平均性态 ②最坏情况复杂性 例1:长度为10个的一维数组,查找一个数字的平均形态分析和最坏情况分析 2.算法的空间复杂度 算法的空间复杂度是指执行这个算法所需要的内存空间。 一个算法所占用的存储空间包括算法程序所占的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。其中额外空间包括算法程序执行过程中的工作单元以及某种数据结构所需要的附加存储空间。如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的。在许多实际问题中,为了减少算法所占的存储空间,通常采用压缩存储技术,以便尽量减少不必要的额外空间。 疑难解答:算法的工作量用什么来计算? 算法的工作量用算法所执行的基本运算次数来计算,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n),其中n是问题的规模。 练习题: 算法的复杂度主要包括时间复杂度和_______。 下面叙述正确的是______。(C) A. 算法的执行效率与数据的存储结构无关 B. 算法的空间复杂度是指算法程序中指令(或语句)的条数 C. 算法的有穷性是指算法必须能在执行有限个步骤之后终止 D. 以上三种描述都不对 算法的时间复杂度是指______。(C) A. 执行算法程序所需要的时间 B. 算法程序的长度 C. 算法执行过程中所需要的基本运算次数 D. 算法程序中的指令条数 算法的空间复杂度是指______。(D) A. 算法程序的长度 B. 算法程序中的指令条数 C. 算法程序所占的存储空间 D. 算法执行过程中所需要的存储空间 在计算机中,算法是指______。(C) A. 查询方法 B. 加工方法 C. 解题方案的准确而完整的描述 D. 排序方法 算法分析的目的是______。(D) A. 找出数据结构的合理性 B. 找出算法中输入和输出之间的关系 C. 分析算法的易懂性和可靠性 D. 分析算法的效率以求改进 算法的复杂度主要包括______复杂度和空间复杂度。 答:时间 数据结构包括数据的逻辑结构、数据的 ______以及对数据的操作运算。 答:存储结构 算法的基本特征是可行性、确定性、______和拥有足够的情报。 答:有穷性 1.2数据结构的基本概念 考点3 数据结构的定义 考试链接: 考点3在笔试考试中,是一个经常考查的内容,在笔试考试中出现的
显示全部
相似文档