公共基础
全国计算机等级考试大纲要求,各种笔试除了要考70分的程序设计相关知识外,还要考30分的公共基础知识,包括基本数据结构与算法、程序设计基础、软件工程基础和数据设计基础。本章将介绍这些基础知识。
1.1 数据结构与算法
1.1.1 算法
本节重点掌握算法的基本概念和典型算法的时间复杂度。
1、基本考点
1)算法基本概念
算法:是指解题方案的准确而完整的描述。
算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。 算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。
特征包括:
(1)可行性:通过已实现的基本运算执行有限次而完成;(2)确定性:算法中每一步骤都必须有明确定义,不允许有模棱两可的解释,不允许有多义性;(3)有穷性:算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;(4)拥有足够的情报。
算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。 基本运算和操作包括:算术运算、逻辑运算、关系运算、数据传输。
算法的控制结构:顺序结构、选择结构、循环结构。
算法基本设计方法:列举法、归纳法、递推、递归、减半递推技术、回溯法。 算法复杂度:算法时间复杂度和算法空间复杂度。
算法时间复杂度:指执行算法所需要的计算工作量。
一般来说,算法的工作量用其执行的基本运算次数来度量,而算法执行的基本运算次数是问题规模的函数,用O(f(n))表示。在同一个问题规模下,用平均性态和最坏情况复杂性来分析。一般情况下,用最坏情况复杂性来分析算法的时间复杂度。 算法空间复杂度是指执行这个算法所需要的内存空间。
2)查找算法
顺序查找的使用情况:
(1)线性表为无序表(不管是顺序存储结构还是链式存储结构);
(2)表采用链式存储结构(即使是有序线性表)。
二分法查找只适用于顺序存储的有序表。
n对于长度为n的有序线性表,二分查找最坏情况只需比较log2次,顺序查找需要比较
n次。
3)排序算法