第 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 表示) ,它是问题规模的函数。即 算法的工作量=f(n) 2.算法的空间复杂度 算法的空间复杂度是指执行这个算法所需要的内存空间。 一个算法所占用的存储空间包括算法程序所占的空间、 输入的初始数据所占的存储空间以及 算法执行过程中所需要的额外空间。 其中额外空间包括算法
程序执行过程中的工作单元以及 某种数据结构所需要的附加存储空间。 如果额外空间量相对于
问题规模来说是常数, 则称该
算法是原地
工作的。在许多实际
问题中,为了减少算法所占的存储空间,通常采用
压缩存储 技术,以便尽量减少不必要的额外空间。
疑难解答:算法的工作量用什么来计算? 算法的工作量用算法所执行的基本运算次数来计算, 而算法所执行的基本运算次数是问题规 模的函数,即算法的工作量=f(n) ,其中 n 是问题的规模。 1.2 数据结构的基本概念 考点 3 数据结构的定义 考试链接: 考点 3 在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为 70%,主要是 以选择的形式出现,分值为 2 分,此考点为识记内容,读者还应该识记数据的逻辑结构和存 储结构的概念。 数据结构作为计算机的一门学科,主要研究和讨论以下三个方面: (1)数据集合中个数据元素之间所固有的逻辑关系,即数据的逻辑结构; (2)在对数据元素进行处理时,各数据元素在计算机中的存储关系,即数据的存储结构; (3)对各种数据结构进行的运算。 数据: 是对客观事物的符号表示, 在计算机科学中是指所有能输入到
计算机中并被计算机程 序处理的符号的总称。 数据元素:是数据的基本单位,在计算机程序中通常作为一个整体进行