第一章 数据结构基本概念
1.1 数据结构概念和术语
数据:数据使信息的载体,是描述客观事物属性的数、字符以及所有能输入到计算机中并被计算机程序处理的符号的总称。
数据元素:数据元素是数据的基本单位,通常作为一个整体进行考虑和处理,数据元素是再数据结构中被考虑操作的最小单位。它一般情况下由若干个数据项组成,数据项即是构成数据元素的最小单位,也是最基本的数据单位。例如一条学生记录就是一个数据元素,而它是由学号、姓名、性别等小的数据项所构成。
数据对象:就是数据元素的一个集合,就叫做数据对象,例如:一个班的学生记录就是一个数据对象。它是数据的一个子集。
数据结构的概念:数据结构使计算机存储、组织数据的方式。相互之间存在一种或多种特定关系的数据元素的集合。通常情况下,精心选择的数据结构可以带来更高的运行或者存储效率。
数据结构总的来说包括三要素:逻辑结构、物理结构、数据运算。
逻辑结构:是指数据元素之间逻辑关系,它是从逻辑上去组织数据元素的结构。它是独立于计算机的,与数据的存储方式无关。一般逻辑结构会分为线性结构和非线性结构。
物理结构:是指数据结构在计算机中的表示形式,也就是数据结构是以何种方式存储在内存中的,它们是通过什么的组织方式存储在内存中。主要分为顺序结构、链式结构、索引结构、散列结构
数据运算:是指针对于与特定的数据结构的逻辑结构和物理结构,去定义和实现对这种数据结构的操作,说具体一点就是去对数据结构中的数据元素做对应的操作,例如:增、删、改、查等。最基本的数据运算是插入运算、删除运算、修改运算、查找运算、排序运算。
1.2 算法和算法分析
算法概念:算法是对特定问题求解步骤的一种描述,它是指令的有限序列,其中每一条指令便是一个或多个操作,即是用计算机设计出解决一个问题的步骤。
算法由五个特性:有穷性、确定性、可行性、输入、输出。
算法效率的度量:
空间复杂度:就是对存储空间的需求, 对一个算法在运行过程中临时占用存储空间大小的量度 ,这和所开发的语言有着一定关系。
时间复杂度:是用程序的步骤数来衡量实践的复杂度,而对于程序的步骤的数量,起决定性作用的是循环语句,所以一般计算程序的时间复杂度时去考虑循环语句中的数量级即可,且对时间复杂度的表示法一般用大O表示法,一般情况下程序的数量级是如下几种,且他们的大小关系如下:
O
(
1
)
<
O
(
l
o
g
n
)
<
O
(
n
)
<
O
(
n
l
o
g
n
)
<
O
(
n
2
)
<
O
(
n
3
)
<
O
(
2
n
)
<
O
(
n
!
)
<
O
(
n
n
)
O(1)<O(log n)<O(n)<O(nlog n)<O(n^2)<O(n^3)<O(2^n)<O(n!)<O(n^n)
O(1)<O(logn)<O(n)<O(nlogn)<O(n2)<O(n3)<O(2n)<O(n!)<O(nn)