一、算法
1. 概念
1.1 算法:是指解题方案的准确而完整的描述。(算法不等于程序)
- 可行性:在设计一个算法时,必须考虑他的可行性
- 确定性:算法中的每个步骤必须是明确定义的,不允许模棱两可
- 有穷性:算法必须在有限的时间内做完,必须在执行有限个步骤之后停止
- 足够的情报:是指算法要有一定的输入数据和必须要有的输出结果
2. 算法的基本要素
2.1 对数据对象的运算和 操作:
- 算数运算、逻辑运算、关系运算、数据传输
2.2 算法的控制结构
- 算法中各操作之间的执行顺序
- 描述算法的工具通常有传统流程图、N-S结构化流程图、算法描述语言等
- 一个算法一般可以用==顺序、选择、循环、==三种基本结构组合而成
3. 时间和空间复杂度
3.1 算法的时间复杂度
- 是指执行算法所需要的计算工作量,可以用算法所执行的基本运算次数度量
3.2 算法的空间复杂度
- 是指执行算法所需要的内存空间。包括算法程序、输入的初始数据以及算法执行过程中需要的额外空间。
3.3 算法的时间复杂度和 空间复杂度 相互独立
二、数据结构
1. 数据结构
1.1 数据:
- 需要处理的数据元素的集合,一般来说,这些数据元素,具有某个共同的特征
数据元素是数据的基本单位,即数据集合中的个体。
有时一个数据元素可由若干个==数据项(Data Item)==组成。数据项是数据的最小单位。
1.2 结构:
- 所谓“结构”,是集合中各个数据元素之间存在的某种关系(或联系)
1.3 数据结构:
- 是指相互有关联的数据元素的集合
2. 数据结构的分类
2.1 逻辑结构:
指反映数据元素之间的逻辑关系(即前后件关系)的数据结构
- 线性结构:线性表,栈,队列
线性结构(线性表):
- 有且只有一个根节点,它无前件
- 每一个节点最多有一个前件,也最多有一个后件
例子:
春–>夏–>秋–>冬
就是可以用一条线串起来的
- 非线性结构&#x