第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)对多种数据结构进行运算。
数据:是对客观事物符号表示,在计算机科学中是指全部能输入到计算机中并被计算机程序处理符号总称。
数据元素:是数据基础单位,在计算机程序中通常作为一个整体进行考虑和处理。
数据对象:是性质相同数据元素集合,是数据一个子集。
数据逻辑结构是对数据元素之间逻辑关系描述,它能够用一个数据元素集合和定义在此集合中若干关系来表示。数据逻辑结构有两个要素:一是数据元素集合,通常记为D;二是D上关系,它反应了数据元素之间前后件关系,通常记为R。一个数据结构能够表示成
B=(D,R)
其中B表示数据结构。为了反应D中各数据元素之间前后件关系,通常见二元组来表示。
数据逻辑结构在计算机存放空间中存放形式称为数据存放结构(也称数据物理结构)。
因为数据元素在计算机存放空间中位置关系可能和逻辑关系不一样,所以,为了表示存放在计算机存放空间中各数据元素之间逻辑关系(即前后件关系),在数据存放结构中,不仅要存放各数据元素信息,还需要存放各数据元素之间前后件关系信息。
一个数据逻辑结构依据需要能够表示成多个存放结构,常见存放结构有次序、链接、索引等存放结构。而采取不一样存放结构,其数据处理效率是不一样。所以,在进行数据处理时,选择适宜存放结构是很关键。
考点4 线性结构和非线性结构
考试链接:
考点4在笔试考试中,即使说不是考试常常考查内容,但读者还是对此考点有所了解,在笔试考试中出现几率为30%,关键是以填空题出现形式出现,分值为2分,此考点为识记内容。
依据数据结构中各数据元素之间前后