数据结构和算法的基本知识
基本概念及术语
数据:对客观事物的符号表示,指所有能输入到计算机并被计算机程序处理的符号的总称。
数据元素:数据的基本单位,在计算机程序中通常作为一个整体进行考虑和处理。
数据项:数据不可分割的最小单位。
数据对象:性质相同的数据元素的集合,是数据的一个子集。
1.数据结构
数据结构:是指相互之间存在一种或多种特定关系的数据元素的集合,分为逻辑结构和物理结构(存储结构)。
物理结构:
- 集合:数据结构中的元素之间除了“同属一个集合” 的相互关系外,别无其他关系。
- 线性结构:数据结构中的元素存在一对一的相互关系。
- 树形结构:数据结构中的元素存在一对多的相互关系。
-
图形结构:数据结构中的元素存在多对多的相互关系。
逻辑结构:
- 顺序存储结构。
-
链式存储结构。
2.数据类型
数据类型是一个值的集合和定义在这个值集上的一组操作的总称,分为原子类型和结构类型。
原子类型:值不可分解,例如C语言中的基本类型(整型,实型,字符型和枚举型)、指针类型和空类型。
结构类型:值是有若干成分按某种结构组成,因此可以分解。例如数组。
抽象数据类型
抽象数据类型是指一个数学模型以及定义在该模型上的一组操作。分为原子类型、固定聚合类型、可变聚合类型。
固定聚合类型:值由确定的数目的成分按某种结构组成。
可变聚合类型:值成分数目不确定。
抽象数据结构的形式定义:
多形数据类型
多形数据类型:值的成分不确定。
算法
算法是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令,算法代表着用系统的方法描述解决问题的策略机制。
1.算法的五个重要特性
- 有穷性。
- 确定性。
- 可行性。
- 输入。
- 输出。
2.算法设计要求
- 正确性。
- 可读性。
- 健壮性。
- 效率与低存储量要求。
3.算法效率的度量
- 事后统计。
- 事前分析估算。
4.算法的渐进时间复杂度(时间复杂度)
T(n) = O(f(n))
5.算法的空间复杂度
S(n) = O(f(n))
参考文献 《数据结构》(C语言版) 严蔚敏 吴伟民