第一章:数据结构绪论
数据结构是一门研究非数值计算的程序设计问题中的操作对象,以及它们之间的关系和操作等相关问题的学科
数据:是描述客观事物的符号,是计算机中可以操作的对象,是能被计算机识别,并输入给计算机处理的符号集合。
数据元素:组成数据的有一定意义的基本单位
数据结构:是相互之间存在一种或者多种特定关系的数据元素集合
数据结构分类
逻辑结构
- 集合结构:关系就是同属于一个集合中
- 线性结构:一对一的关系
- 树形结构:一对多的层次关系
- 图形结构:多对多的关系
存储结构(物理结构)
- 顺序存储结构:把数据元素放在地址连续的存储单元里,逻辑关系和物理关系一致。
- 链式存储结构:把数据元素放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的,通过一个指针来存放数据元素的地址
逻辑结构是面向问题的,而物理结构是面向计算机的,其基本目标就是将数据及其逻辑关系存储到计算机的内存中
第二章: 算法
算法是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每个指令表示一个或者多个步骤
算法的特性
- 输入:0个或者多个
- 输出:至少一个
- 有穷
- 确定:每一步都有具体含义
- 可行:每一步都可行
算法设计的要求
- 正确性
- 可读性
- 健壮:对错误的处理
- 时间效率高和存储量低
算法效率计算方式
- 事后统计法:缺点较多
- 事前估计法:一个程序的运行时间,依赖于算法的好坏和问题的输入规模,即输入量的多少。
算法时间复杂度⭐
常用算法时间复杂度和空间复杂度
算法的空间复杂度⭐
空间复杂度(Space Complexity)是对一个算法在运行过程中临时占用存储空间大小的量度。