1.1 数据结构与算法研究的内容
什么是数据结构?
我们如何把现实中大量而复杂的问题以特定的数据类型和特定的存储结构保存到主存储器(内存)中,以及在此基础上为实现某个功能(比如查找某个元素,删除某个元素,对所有元素进行排序)而执行的相应操作,这个相应的操作也叫算法 。
数据结构=个体+个体的关系
算法=对存储数据的操作(问题求解步骤的描述)
1.2 基本概念
数据:用于描述客观世界各种信息的符号表示。、
所有能输入到计算机中且被计算机处理的符号(数值、字符等)的集合。其存储的形式只有0、1,但其组织结构不同。即采用不同的数据结构或者编码方式。
数据元素:
数据中的一个“个体”,在计算机中通常作为一个整体进行考虑和处理。是数据结构中讨论的基本单位。数据元素也可以由若干数据项构成。
数据对象:
是指性质相同的数据元素的集合,是数据的一个子集。
数据结构:
数据元素的集合,以及在数据元素之间存在一种或多种特定的关系集合,则称为一个数据结构。(即:元素及关系)
1.3 逻辑结构与物理结构
逻辑结构分类:集合结构 线性结构 树形结构 图形结构
物理结构:是指数据的逻辑结构在计算机中的存储形式
数据元素的存储结构形式有两种:顺序存储和链式存储。
广义表是一种非线性的数据结构,是一种较为简单的数据结构,是线性表的扩展,是一个由n个元素组成的序列。
1.4 数据类型
在用C语言中,数据类型分基本类型和抽象数据类型。
1.5 算法与算法分析
一个算法必须满足以下五个基本特性
1.有穷性
2.确定性
3.可行性
4.有输入
5.有输出
衡量算法的标准
时间复杂度
1.寻找执行频率最高的那条语句 通常都是循环最内层
2.估计出该语句的执行次数 是问题规模n的函数
3.只保留最高次幂 去掉最高次幂的系数和其余项空间复杂度
难易程度
健壮性