计算机国二-----第一章-算法---笔试绝对有用
- 格式:doc
- 大小:21.50 KB
- 文档页数:6
第一章数据构造与算法算法:是指解题方案的准确而完整的描述。
算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
算法的根本特征:是一组严谨地定义运算顺序的规那么,每一个规那么都是有效的,是明确的,此顺序将在有限的次数下终止。
特征包括:〔1〕可行性;〔2〕确定性,算法中每一步骤都必须有明确定义,不允许有模棱两可的解释,不允许有多义性;〔3〕有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;〔4〕拥有足够的情报。
算法的根本要素:一是对数据对象的运算和操作;二是算法的控制构造。
根本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。
算法的控制构造:顺序构造、选择构造、循环构造。
算法根本设计方法:列举法、归纳法、递推、递归、减半递推技术、回溯法。
算法复杂度:算法时间复杂度和算法空间复杂度。
算法时间复杂度是指执行算法所需要的计算工作量。
一般来说,算法的工作量用其执行的根本运算次数来度量,而算法执行的根本运算次数是问题规模的函数。
在同一个问题规模下,用平均性态和最坏情况复杂性来分析。
一般情况下,用最坏情况复杂性来分析算法的时间复杂度。
算法空间复杂度是指执行这个算法所需要的内存空间。
数据构造研究的三个方面:〔1〕数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑构造;〔2〕在对数据进展处理时,各数据元素在计算机中的存储关系,即数据的存储构造;〔3〕对各种数据构造进展的运算。
数据构造是指相互有关联的数据元素的集合。
数据构造是反映数据元素之间关系的数据元素集合的表示。
数据的逻辑构造包含:〔1〕表示数据元素的信息;〔2〕表示各数据元素之间的前后件关系。
〔逻辑关系,与在计算机内的存储位置无关〕一个数据构造中的各数据元素在计算机存储空间中的位置关系与逻辑关系有可能不同。
数据的存储构造是数据的逻辑构造在计算机存储空间中的存放形式。
常用的存储构造有顺序、链接、索引等。
第1章数据结构与算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。
详细重点学习知识点:1. 算法的概念、算法时间复杂度及空间复杂度的概念2. 数据结构的定义、数据逻辑结构及物理结构的定义3. 栈的定义及其运算、线性链表的存储方式4. 树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5. 二分查找法6. 冒泡排序法考点1 算法的基本概念1.1 算法考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。
1. 算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
2. 算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构。
在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。
(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。
描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。
一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。
考点 2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。
1.算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。
这表明使用绝对的时间单位衡量算法的效率是不合适的。
撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法”运行工作量”的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。
公共基础知识第一章数据结构与算法1.1 算法1.1.1 算法的基本概念1、算法的基本特征可行性、确定性、有穷性、拥有足够的情报所谓算法,是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。
2、算法的基本要素(1)算法中对数据的运算和操作在一般的计算机系统中,基本的运算和操作:算术运算、逻辑运算、关系运算、数据传输(2)算法的控制结构描述算法的工具:传统流程图、N-S结构化流程图、算法描述语言等一个算法一般都可以用顺序、选择、循环三种基本控制结构组合而成3、算法设计基本方法列举法、归纳法、递推(本质上也属于归纳法,递推关系式往往是归纳的结果)、递归(基础也是归纳,分为直接递归和间接递归两种)、减半递推技术、回溯法(“试”)1.1.2 算法复杂度1、算法的时间复杂度(执行算法所需要的计算工作量)算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数算法的工作量=f(n),n是问题的规模两个n阶矩阵相乘所需要的基本运算(即两个实数的乘法)次数为n3,即计算工作量为n3,也就是时间复杂度为n3对于一个固定的规模,算法所执行的基本运算次数还可能与特定的输入有关——可以用两种方法来分析算法的工作量:平均性态、最坏情况复杂性2、算法的空间复杂度(执行这个算法所需要的内存空间)如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的1.2 数据结构的基本概念数据结构主要有三个方面的问题:●数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构●在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构●对各种数据结构进行的运算提高数据处理的效率,主要包括两个方面:●提高数据处理的速度●尽量节省在数据处理过程中所占用的计算机存储空间1.2.1 什么是数据结构无序表,只能用顺序查找对分查找只适用于有序表(在词典中查单词的方法类似于对分查找)数据结构是指相互有关联的数据元素的集合(向量、矩阵、图书馆中的图书卡片目录……)在数据处理领域中,通常把数据元素之间这种固有的关系简单地用前后件关系(直接前驱与直接后继关系)来描述,前后件关系所表示的实际意义随具体对象的不同而不同1、数据的逻辑结构一个数据结构应包含以下两方面的信息:●表示数据元素的信息●表示各数据元素之间的前后件关系(数据元素之间的前后件关系是指它们的逻辑关系,而与它们在计算机中的存储位置无关)一个数据结构可以表示成:B=(D,R)D为数据元素的集合,R为D中各数据元素之间的前后件关系(一般用二元组来表示)a与b是D中的两个数据,则二元组(a,b)表示a是b的前件,b是a的后件2、数据的存储结构各数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的,而且一般也不可能相同一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等存储结构1.2.2 数据结构的图形表示在数据结构中,没有前件的结点称为根结点,没有后件的结点称为终端结点(叶子结点)数据结构中除了根结点与终端结点外的其他结点一般称为内部结点在对数据结构的处理过程中,不仅数据结构中的结点(即数据元素)个数在动态地变化,而且,各数据元素之间的关系也有可能在动态地变化1.2.3 线性结构与非线性结构根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构和非线性结构如果一个非空的数据结构满足两个条件:●有且只有一个根结点●每一个结点最多有一个前件,也最多有一个后件则称该数据结构为线性结构。
第1章数据结构与算法(13%)重要考点提示:1)算法复杂度。
2)栈、队列、线性链表的基本概念3)二叉树的存储结构4)线性表、树的结点计算和遍历5)冒泡排序的最坏次数计算一、算法考点1 算法的基本概念记一些概念即可1、算法:对解题方案的准确而完整的描述。
重点2、算法的基本特征重点①可行性针对实际问题设计的算法,人们总是希望能够得到满意的结果。
但一个算法又总是在某个特定的计算工具上执行的,因此算法在执行过程中往往要受到计算工具的限制,使执行结果产生偏差。
算法与计算公式是有差别的,在设计一个算法时,必须考虑它的可行性,否则将得不到满意的结果。
②确定性算法的确定性是指算法中的每一个步骤必须有明确的定义,不能产生歧义。
这一性质也反映了算法与数学公式的明显差别。
③有穷性算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。
算法的有穷性还包括合理的执行时间的含义,因为如果一个算法需要执行千万年,显然失去了价值。
④拥有足够的情报一个算法是否有效,还取决为算法所提供的情报是否足够。
通常,算法中的各种运算总是要施加到各个运算对象上,而这些运算对象又可能具有某种初始状态,这是算法执行的起点或是依据。
因此,一个算法执行的结果总是与输入的初始数据有关,不同的输入将会有不同的结果输出。
当输入不够或输入错误时,算法本身也就无法执行或导致执行有错。
一般来说,当算法拥有足够的情报时,此算法才是有效的,而当提供的情报不够时,算法可能无效。
有的认为是:可行性、确定性、有穷性、有输入、有输出。
3、算法的基本要素重点①算法中对数据的运算和操作②算法的控制结构可理解为:一个算法是由控制结构(顺序、分支和循环三种)和原操作(指固有数据类型的操作)构成的,则算法时间取决于两者的综合效果。
即:算法= 控制结构+ 原操作(固有数据类型的操作)解释:了解①算法中对数据的运算和操作每个算法实际上是按解题要求,从环境能进行的操作中选择合适的操作所组成的一组指令序列。
公共基础知识第一章数据结构与算法1.1 算法1.1.1 算法的基本概念1、算法的基本特征可行性、确定性、有穷性、拥有足够的情报所谓算法,是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。
2、算法的基本要素(1)算法中对数据的运算和操作在一般的计算机系统中,基本的运算和操作:算术运算、逻辑运算、关系运算、数据传输(2)算法的控制结构描述算法的工具:传统流程图、N-S结构化流程图、算法描述语言等一个算法一般都可以用顺序、选择、循环三种基本控制结构组合而成3、算法设计基本方法列举法、归纳法、递推(本质上也属于归纳法,递推关系式往往是归纳的结果)、递归(基础也是归纳,分为直接递归和间接递归两种)、减半递推技术、回溯法(“试”)1.1.2 算法复杂度1、算法的时间复杂度(执行算法所需要的计算工作量)算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数算法的工作量=f(n),n是问题的规模➢两个n阶矩阵相乘所需要的基本运算(即两个实数的乘法)次数为n3,即计算工作量为n3,也就是时间复杂度为n3对于一个固定的规模,算法所执行的基本运算次数还可能与特定的输入有关——可以用两种方法来分析算法的工作量:平均性态、最坏情况复杂性2、算法的空间复杂度(执行这个算法所需要的内存空间)如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的1.2 数据结构的基本概念数据结构主要有三个方面的问题:●数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构●在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构●对各种数据结构进行的运算提高数据处理的效率,主要包括两个方面:●提高数据处理的速度●尽量节省在数据处理过程中所占用的计算机存储空间1.2.1 什么是数据结构无序表,只能用顺序查找对分查找只适用于有序表(在词典中查单词的方法类似于对分查找)数据结构是指相互有关联的数据元素的集合(向量、矩阵、图书馆中的图书卡片目录……)在数据处理领域中,通常把数据元素之间这种固有的关系简单地用前后件关系(直接前驱与直接后继关系)来描述,前后件关系所表示的实际意义随具体对象的不同而不同1、数据的逻辑结构一个数据结构应包含以下两方面的信息:●表示数据元素的信息●表示各数据元素之间的前后件关系(数据元素之间的前后件关系是指它们的逻辑关系,而与它们在计算机中的存储位置无关)一个数据结构可以表示成:B=(D,R)D为数据元素的集合,R为D中各数据元素之间的前后件关系(一般用二元组来表示)➢a与b是D中的两个数据,则二元组(a,b)表示a是b的前件,b是a的后件2、数据的存储结构各数据元素在计算机存储空间中的位置关系与它们的逻辑关系不一定是相同的,而且一般也不可能相同一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接、索引等存储结构1.2.2 数据结构的图形表示在数据结构中,没有前件的结点称为根结点,没有后件的结点称为终端结点(叶子结点)数据结构中除了根结点与终端结点外的其他结点一般称为内部结点在对数据结构的处理过程中,不仅数据结构中的结点(即数据元素)个数在动态地变化,而且,各数据元素之间的关系也有可能在动态地变化1.2.3 线性结构与非线性结构根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构和非线性结构如果一个非空的数据结构满足两个条件:●有且只有一个根结点●每一个结点最多有一个前件,也最多有一个后件则称该数据结构为线性结构。
全国计算机等级考试二级公共基础知识总结第一章数据结构与算法1.1 算法1.算法的基本特征:可行性;确定性,有穷性;拥有足够的情报。
,2.确定性:算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性;3.算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。
4.归纳法:通过观察一些简单而特殊的情况,最后总结出一般性的结论的算法的设计方法。
5.算法时间复杂度是指执行算法所需要的计算工作量。
可以用算法在执行过程中所需基本运算的执行次数来度量算法的工作量。
6.算法时间复杂度取决于问题的规模和待处理的数据的初态。
7.如果算法P调用另一个算法Q,而算法Q又调用算法P,则称为间接递归调用8.工程上常用的分治法是减半递推技术9.算法空间复杂度是指执行这个算法所需要的内存空间。
10.如果查找的x一定在数组中,此时q=1,则A(n)=(n+1)/2。
也就是说,在这种情况下,用顺序搜索法在长度为n的一维数组中查找值为x的元素,在平均的情况下需要检查数组中一半的元素。
如果已知需要查找的x有一半机会在数组中,此时q=1/2。
则A(n)=[(n+1)/4]+n/2=3n/4。
x不在数组中时,A(n)=n。
. 11.下面程序段的时间复杂度是for(int i=0;i<n;i++)for(int j=1;j<=m;j++)A[i][j]=0;语句的频度指的是该语句重复执行的次数,一个算法中所有语句的频度之和构成了该算法的运行时间。
本例中语句:A[i][j]=0;的频度是n*m,所以该程序段的时间复杂度是:O(m*n).12.算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。
13.一个递归的定义可以用递归过程求解,也可以用非递归过程求解,但单从运行时间来看,通常递归过程比非递归过程较慢。
14.算法复杂度:算法时间复杂度和算法空间复杂度。
1.2 数据结构的基本概念1.数据结构研究的三个方面:数据的逻辑结构;数据的存储结构(物理结构);数据运算。
第一章数据结构与算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。
详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法1.1算法考点1 算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。
1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
2.算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构。
在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。
(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。
描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。
一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。
考点2 算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。
1.算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。
这表明使用绝对的时间单位衡量算法的效率是不合适的。
撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量"的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。
全国计算机等级考试二级公共基础知识考试要点2全国计算机等级考试公共基础知识第一章数据结构与算法1.1算法算法:是指解题方案的准确而完整的描述。
算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。
特征包括:(1)可行性;(2)确定性,算法中每一步骤都必须有明确定义,不允许有模棱两可的解释,不允许有多义性;(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;(4)拥有足够的情报。
算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。
基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。
算法的控制结构:顺序结构、选择结构、循环结构。
算法基本设计方法:列举法、归纳法、递推、递归、减半递推技术、回溯法。
算法复杂度:算法时间复杂度和算法空间复杂度。
算法时间复杂度是指执行算法所需要的计算工作量。
一般来说,算法的工作量用其执行的基本运算次数来度量,而算法执行的基本运算次数是问题规模的函数。
在同一个问题规模下,用平均性态和最坏情况复杂性来分析。
一般情况下,用最坏情况复杂性来分析算法的时间复杂度。
算法空间复杂度是指执行这个算法所需要的内存空间。
1.2数据结构的基本概念数据结构研究的三个方面:(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构;(3)对各种数据结构进行的运算。
数据结构是指相互有关联的数据元素的集合。
数据结构是反映数据元素之间关系的数据元素集合的表示。
数据的逻辑结构包含:(1)表示数据元素的信息;(2)表示各数据元素之间的前后件关系。
(逻辑关系,与在计算机内的存储位置无关)一个数据结构中的各数据元素在计算机存储空间中的位置关系与逻辑关系有可能不同。
第一章数据结构与算法经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是算法复杂度、数据结构的概念、栈、二叉树的遍历、二分法查找,读者应对此部分进行重点学习。
详细重点学习知识点:1.算法的概念、算法时间复杂度及空间复杂度的概念2.数据结构的定义、数据逻辑结构及物理结构的定义3.栈的定义及其运算、线性链表的存储方式4.树与二叉树的概念、二叉树的基本性质、完全二叉树的概念、二叉树的遍历5.二分查找法6.冒泡排序法1.1算法考点1算法的基本概念考试链接:考点1在笔试考试中考核的几率为30%,主要是以填空题的形式出现,分值为2分,此考点为识记内容,读者还应该了解算法中对数据的基本运算。
计算机解题的过程实际上是在实施某种算法,这种算法称为计算机算法。
1.算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
2.算法的基本要素:(1)算法中对数据的运算和操作一个算法由两种基本要素组成:一是对数据对象的运算和操作;二是算法的控制结构。
在一般的计算机系统中,基本的运算和操作有以下4类:算术运算、逻辑运算、关系运算和数据传输。
(2)算法的控制结构:算法中各操作之间的执行顺序称为算法的控制结构。
描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等。
一个算法一般都可以用顺序、选择、循环3种基本控制结构组合而成。
考点2算法复杂度考试链接:考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记算法时间复杂度及空间复杂度的概念。
1.算法的时间复杂度算法的时间复杂度是指执行算法所需要的计算工作量。
同一个算法用不同的语言实现,或者用不同的编译程序进行编译,或者在不同的计算机上运行,效率均不同。
这表明使用绝对的时间单位衡量算法的效率是不合适的。
撇开这些与计算机硬件、软件有关的因素,可以认为一个特定算法"运行工作量"的大小,只依赖于问题的规模(通常用整数n表示),它是问题规模的函数。
第一章数据结构与算法一、内容要点(一)算法1.算法的基本概念算法是指解题方案的准确而完整的描述。
即是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,没有二义性,同时该规则将在有限次运算后可终止。
1)算法的基本特征(1)可行性由于算法的设计是为了在某一个特定的计算工具上解决某一个实际的问题而设计的,因此,它总是受到计算工具的限制,使执行产生偏差。
如:计算机的数值有效位是有限的,当大数和小数进行运算时,往往会因为有效位数的影响而使小数丢失,因此,在算法设计时,应该考虑到这一点。
(2)确定性算法的设计必须是每一个步骤都有明确的定义,不允许有模糊的解释,也不能有多义性。
例如,一个实际的问题,小宝和萍萍共有12个苹果,小宝比萍萍多4个,请问小宝和萍萍各有几个苹果?这个问题,我们可以立一个方程组x+y=12和x-y=4来求解,要求x和y的值,公式是正确的,但如何让计算能够进行计算,我们的算法不能把公式直接输进去,而应该设计出解题的步骤和过程。
即设计的算法是计算工具所能够正常解决问题的过程。
(3)有穷性算法的有穷性,即在一定的时间是能够完成的,即算法应该在计算有限个步骤后能够正常结束。
例如,在数学中的无穷级数,在计算机中只能求有限项,即计算的过程是有穷的。
(4)拥有足够的情报算法的执行与输入的数据和提供的初始条件相关,不同的输入或初始条件会有不同的输出结果,提供准确的初始条件和数据,才能使算法正确执行。
2)算法的基本要素一是数据对象的运算和操作,二是算法的控制结构。
(1)算法中对数据的运算和操作算法实际上是按解题要求从环境能进行的所有操作中选择合适的操作所组成的一组指令序列。
即算法是计算机所能够处理的操作所组成的指令序列。
(2)算法的控制结构算法的功能不仅取决于所选用的操作,而且还与各操作之间的顺序有关。
在算法中,操作的执行顺序又称算法的控制结构,一般的算法控制结构有三种:顺序结构、选择结构和循环结构。
全国计算机等级考试-----公共基础教程全国计算机等级考试——二级公共基础知识辅导讲义第一章数据结构与算法1.1 算法1*2、算法的基本特征(1)可行性。
针对实际问题而设计的算法,执行后能够得到满意的结果。
(2)确定性。
每一条指令的含义明确,无二义性。
并且在任何条件下,算法只有唯一的一条执行路径,即相同的输入只能得出相同的输出。
(3)有穷性。
算法必须在有限的时间内完成。
有两重含义,一是算法中的操作步骤为有限个,二是每个步骤都能在有限时间内完成。
(4)拥有足够的情报。
算法中各种运算总是要施加到各个运算对象上,而这些运算对象又可能具有某种初始状态,这就是算法执行的起点或依据。
因此,一个算法执行的结果总是与输入的初始数据有关,不同的输入将会有不同的结果输出。
当输入不够或输入错误时,算法将无法执行或执行有错。
一般说来,当算法拥有足够的情报时,此算法才是有效的;而当提供的情报不够时,算法可能无效。
*:综上所述,所谓算法,是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。
3、算法复杂度主要包括时间复杂度和空间复杂度。
(1)算法时间复杂度是指执行算法所需要的计算工作量,可以用执行算法的过程中所需基本运算的执行次数来度量。
(21.2 数据结构的基本概念12、数据结构主要研究和讨论以下三个方面的问题:(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构。
数据的逻辑结构包含:1)表示数据元素的信息;2)表示各数据元素之间的前后件关系。
(2)在对数据进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构。
数据的存储结构有顺序、链接、索引等。
*:数据的逻辑结构反映数据元素之间的逻辑关系,数据的存储结构(也称数据的物理结构)是数据的逻辑结构在计算机存储空间中的存放形式。
同一种逻辑结构的数据可以采用不同的存储结构,但影响数据处理效率。
(3)对各种数据结构进行的运算。
考点1 算法的复杂度【考点精讲】1.算法的基本概念计算机算法为计算机解题的过程实际上是在实施某种算法。
算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
2.算法复杂度算法复杂度包括时间复杂度和空间复杂度。
考点2 逻辑结构和存储结构【考点精讲】1.逻辑结构数据的逻辑结构是对数据元素之间的逻辑关系的描述,它可以用一个数据元素的集合和定义在此集合中的若干关系来表示。
数据的逻辑结构有两个要素:一是数据元素的集合,通常记为D;二是D上的关系,它反映了数据元素之间的前后件关系,通常记为R。
一个数据结构可以表示成B=(D,R)其中B表示数据结构。
为了反映D中各数据元素之间的前后件关系,一般用二元组来表示。
例如,如果把一年四季看作一个数据结构,则可表示成B =(D,R)D ={春季,夏季,秋季,冬季}R ={(春季,夏季),(夏季,秋季),(秋季,冬季)}2.存储结构数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。
由于数据元素在计算机存储空间中的位置关系可能与逻辑关系不同,因此,为了表示存放在计算机存储空间中的各数据元素之间的逻辑关系(即前后件关系),在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息。
一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接等存储结构。
顺序存储方式主要用于线性的数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。
链式存储结构就是在每个结点中至少包含一个指针域,用指针来体现数据元素之间逻辑上的联系。
考点3 线性结构和非线性结构【考点精讲】根据数据结构中各数据元素之间前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。
如果一个非空的数据结构满足下列两个条件:(1)有且只有一个根结点;(2)每一个结点最多有一个前件,也最多有一个后件。
第一章数据结构与算法1.1 算法1、算法是指解题方案的准确而完整的描述。
换句话说,算法是对特定问题求解环节的一种描述。
*算法不等于程序,也不等于计算方法。
程序的编制不也许优于算法的设计(注释1)。
2、算法的基本特性(1)可行性。
针对实际问题而设计的算法,执行后可以得到满意的结果。
(2)拟定性。
每一条指令的含义明确,无二义性。
并且在任何条件下,算法只有唯一的一条执行途径,即相同的输入只能得出相同的输出。
(3)有穷性。
算法必须在有限的时间内完毕。
有两重含义,一是算法中的操作环节为有限个,二是每个环节都能在有限时间内完毕。
(4)拥有足够的情报。
算法中各种运算总是要施加到各个运算对象上,而这些运算对象又也许具有某种初始状态,这就是算法执行的起点或依据。
因此,一个算法执行的结果总是与输入的初始数据有关,不同的输入将会有不同的结果输出。
当输入不够或输入错误时,算法将无法执行或执行有错。
一般说来,当算法拥有足够的情报时,此算法才是有效的;而当提供的情报不够时,算法也许无效。
*:综上所述,所谓算法,是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。
3、算法复杂度重要涉及时间复杂度和空间复杂度。
(1)算法时间复杂度是指执行算法所需要的计算工作量,可以用执行算法的过程中所需基本运算的执行次数来度量。
(2)算法空间复杂度是指执行这个算法所需要的内存空间。
注释1:这是由于在编写程序时要受到计算机系统运营环境的限制,程序通常还要考虑很多与方法和分析无关的细节问题1.2 数据结构的基本概念1、数据结构是指互相有关联的数据元素的集合。
2、数据结构重要研究和讨论以下三个方面的问题:(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构。
数据的逻辑结构包含:1)表达数据元素的信息;2)表达各数据元素之间的前后件关系[wx1] 。
(2)在对数据进行解决时,各数据元素在计算机中的存储关系,即数据的存储结构。
考点:1. 算法(****)2. 数据结构(***)3. 线性表及其顺序存储结构(**)4. 栈和队列(*****)5. 线性链表(**)6. 树与二叉树(*****)7. 查找技术(****)8. 排序技术(***)1、概念算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令表示一个或多个操作 2、数据的逻辑结构● 线性结构(例:一维数组、链表、栈、队列、串、线性表) ● 非线性结构(例:多维数组、广义表、树、图) 3、数据的存储结构(线性表)● 顺序存储方法:线性表中所有元素所占的存储空间是连续的;线性表中各数据元素在存储空间中是按逻辑顺序依次存放的● 链接存储方法:逻辑上相邻的结点,物理上也相邻,存储单元可以是连续的,也可以是不连续的 ● 计算机中有数据进行处理时,数据的存储结构对程序的执行效率有很大的关系● 一种数据的逻辑结构根据需要可以表示成多种存储结构。
数组是数据的逻辑结构,可以用多种存储结构来表示● 线性链表:就是指线性表的链式存储结构,简称链表 4、算法的基本特征● 可行性:针对实际问题而设计的算法,执行后能够得到满意的结果 ● 确定性:算法中的每一个步骤都必须有明确的定义,不允许出现歧义性● 有穷性:算法必须在有限时间内做完,即必须在执行有限个步骤之后终止,算法程序的运行时间是有限的● 拥有足够的情报:要使算法有效必需为算法提供足够的情报当算法拥有足够的情报时,此算法才最有效的;而当提供的情报不够时,算法可能无效5、算法的复杂度● 时间复杂度:该算法执行的时间耗费,是指执行算法所需要的计算工作量,即算法执行过程中所需要的基本运算次数● 空间复杂度:该算法执行时所耗费的存储空间 6、顺序表和链表的比较:基于空间的考虑:(1)顺序表的存储空间是静态分配的,而链表的存储空间是动态分配的。
(2)顺序表占的存储空间必须是连续的,而链表占的存储空间可以是连续的,也可是不连续的栈实际也是线性表,只不过是一种特殊的线性表。
计算机等级考试笔试部分知识第一章数据结构与算法【考点1】算法的基本概念算法:是指一组有穷的指令集,是解题方案的准确而完整的描述。
算法不等于程序,也不等于计算方法。
算法的基本特征:确定性,算法中每一步骤都必须有明确定义,不允许有多义性;有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止;可行性,算法原则上能够精确地执行;拥有足够的情报。
算法的组成要素:一个算法由数据对象的运算和操作以及其控制结构这两部分组成。
算法的基本运算和操作:算术运算,逻辑运算,关系运算,数据传输。
算法的基本控制结构:顺序,选择,循环。
算法基本设计方法:列举法、归纳法、递推、递归、减半递推技术。
###二叉树的遍历前序遍历:先访问根结点、然后遍历左子树,最后遍历右子树;并且,在遍历左、右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。
前序遍历图5可得:ABCDFHEG。
中序遍历:先遍历左子树、然后访问根结点,最后遍历右子树;并且,在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。
中序遍历图5可得:BAFHDCGE。
后序遍历:先遍历左子树、然后遍历右子树,最后访问根结点;并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。
后序遍历图5可得:BHFDGECA。
2、二叉树的性质性质1 在二叉树的第k层上,最多有2k-1(k≥1)个结点。
性质2 深度为m的二叉树最多有2m-1个结点。
性质3 在任意一棵二叉树中,度为0的结点(叶子结点)总是比度为2的结点多一个。
性质4 具有n个结点的二叉树,其深度不小于[log2n]+1,其中[log2n]表示为log2n的整数部分。
3、二叉树的存储结构:详见教材第13-14页。
【考点12】满二叉树与完全二叉树满二叉树:除最后一层外,每一层上的所有结点都有两个子结点。
在满二叉树中,每一层上的结点数都达到最大值,即在满二叉树的第k层上有2k-1个结点,且深度为m的满二叉树有2m-1个结点。
第一章算法
一、基本概念
1、算法:是指解题方案的准确而完整的描述。
2、算法的基本特征:可行性、确定性、有穷性、拥有足够的情报。
3、衡量算法的标准:时间复杂度(用语句条数)和空间复杂度(开辟变量的个数)。
4、算法的控制结构:顺序结构、选择结构、循环结构。
5、算法设计基本方法:列举法、归纳法、递推法、递归法、二分法(减半递推法)、回溯法。
二、时间复杂度的计算
1、时间复杂度的概念:是指执行算法所需要的计算工作量。
O(表达式)来表示算法的时间复杂度。
2、空间复杂度的概念:是指执行这个算法所需要的内存空间。
一般用变量的个数来衡量。
O(表达式)
第二章数据结构
一、基本概念
1、数据结构:反映数据元素之间关系的数据元素集合的表示。
结构:数据元素之间的关系。
数据元素用D表示,数据元素之间的关系用R 表示。
S(D,R)
2、数据元素之间的关系:
·集合关系(数据元素之间无任何联系)
·线性关系(数据元素之间1对1)
·树型关系(数据元素之间是1对多的关系)
·图型关系(数据元素之间是多对多的关系)
三、线性表List
1、线性表的存储结构有顺序结构和链表结构。
2、顺序表所占的存储空间是连续的,存储数据元素时依次存放。
3、栈(FILO):是一种特殊的线性表,插入和删除操作只能在表的一端进行。
可以进行插入和删除的一端称为栈项,不可以进行插入和删除的一端称为栈底。
栈中数据元素的个数称为栈长。
栈的插入操作称为入栈,删除操作称为出栈。
“先进后出”的特性(First In Last Out)
4、队列(FIFO):是一种特殊的线性表,在表的一端进行插入在另一端进行删除。
进行插入一端称为队尾,进行删除的一端称为队首。
队列中数据元素的个数称为队列长度。
具有“先进先出”的特性(First In First Out)
第三章树和二叉树
一、相关概念
1、根结点:树型结构中有且仅有唯一的一个结点,没有前驱,称它为根结点。
2、叶子结点:没有后继元素的结点称为叶子结点。
3、结点的度:每一个结点孩子的个数称为该结点的度。
4、树的度:树中最大的结点的度称树的度。
5、树的深度:树中结点所在的最大的层数称为树的深度。
6、二叉树:度为二的树,并且孩子结点有序。
7、满二叉树:二叉树中所有结点的度都为二,并且叶子结点在同一层。
8、完全二叉树:与同深度的满二叉树相比缺少结点编号大的结点。
二、二叉树的性质(重点)
1、在二叉树的第k层上,最多有2k-1(k)=1)个结点。
2、深度为m的二叉树最多有2m-1个结点。
3、在任意一棵二叉树中,度为0的结点的个数比度为2的结点的个数多一个。
4、具有n个结点的二叉树,其深度至少为INT(log2n)+1。
1、就程序设计方法和技术的发展而言,主要经过了结构化程序设计和面向对象的程序设计阶段。
2、注释一般分为序言性注释和功能性注释。
3、结构化程序设计的原则:自顶向下、逐步求精、模块化、限制goto 语句的使用。
4、结构化程序的基本结构:顺序结构、选择结构、重复结构(循环结构)
5、面向对象程序设计方法优点:与人类习惯的思维方法一致、稳定性好、可重用性好、易于开发大型软件产品、可维护性好。
6、传统的程序设计方法是面向过程的,其核心方法是以算法为核心。
面向对象的程序设计方法是以对象为核心的。
7、对象是面向对象方法中最基本的单位。
8、对象有如下的一些基本特点:标识唯一性、分类性、多态性、封装性。
9、类:类是对象的抽象,对象是类的一个实体。
10、消息是一个实例与另一个实之间传递的信息。
11、继承:实现类之间共享属性和操作的机制。
1、计算机软件是计算机系统中与硬件相互依存的另一部分,是包括程序、数据及相关文档的完整集合。
2、软件危机的主要表现:
(1)软件需求的增长得不到满足。
(2)软件开发成本和进度无法控制。
(3)软件质量难以保证。
(4)软件不可维护或维护程序非常低。
(5)软件的成本不断提高。
(6)软件开发生产率的提高赶不上硬件的发展和应用需求的增长。
3、软件工程包括三个要素:方法、工具和过程。
方法是完成软件工程项目的技术手段,工具支持软件的开发、管理、文档生成,过程支持软件开发各个环节的控制、管理。
4、软件生命周期:通常将软件产品从提出、实现、使用维护到停止使用退役的过程称为软件的生命周期。
5、软件生命周期的三个阶段:软件定义、软件开发、软件运行维护。
6、软件工程工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。
7、需求分析阶段的工作,可以概括为四个方面:需求获取、需求分析、编写需求规格说明书、需求评审。
8、数据流图中的表示:表示加工;表示数据流;
表示数据的源或目的(潭)
9、软件需求规格说明书的作用是:便于用户、开发人员进行理解和交流;反映出用户的结构,可以作为软件开发工作的基础和依据;作为确认测试和验收的依据。
10、软件测试是为了发现错误而执行程序的过程。
11、软件测试的分类:从是否需要执行被测软件的角度可以分为静态测试和动态测试,按功能划分为白盒测试和黑盒测试。
12、软件测试过程可以分为四个步骤:单元测试、集成测试、验收测试(确认测试)、系统测试。
13、程序调度的任务是诊断和改正程序中的错误。
(注:可编辑下载,若有不当之处,请指正,谢谢!)。