算法与数据结构前言
1.数据结构包括三方面的的内容:数据的逻辑结构、数据的物理存储结构、对数据的操作(算法或运算)。
2.基础概念
-2.1 数据元素:数据元素是数据的基本单位
-2.2 数据项:是数据结构中讨论的最小单位。若数据元素可再分,则每一个独立的处理单元就是数据项。
-
2.3数据结构:包括数据元素和数据元素之间的相互关系。
-
2.4逻辑结构:数据元素之间的相互逻辑关系,与数据的存储无关,是独立于计算机的。
四种基本的逻辑结构:
- 集合:除了“同属于一个集合”的相互关系外,无其他关系。
- 线性结构:一对一(唯一前驱唯一后继)
-
树形结构:一对多
-
图形结构:多对多
-
2.5物理结构(存储结构):是数据结构在计算机中的表示(又称映像)
-
数据元素的映像方法:用二进制的位串表示数据元素。
- 这个位串称为结点(node)
- 关系的映像方法:顺序映像和非顺序映像。常用的两种存储结构为顺序存储和非顺序存储。
-
2.6数据类型(Data Type)
-
2.7抽象数据类型(ADT)
3算法
-
特性:有穷性、确定性、可行性、输入、输出
-
节约算法的时间往往以牺牲更多的空间为代价
-
时间复杂性T(n)
-
估算O(f(n)),常用的估算方法:
- 多数情况下,求最深层循环内的简单语句重复执行的次数
- 求最坏情况下简单语句执行次数
- 求出增长率或阶
-
-多项式时间算法 O(1)<O(logn)<O(n)<O(nlogn)<O(n^2)<O(n ^ 3)
-
指数时间算法O(2^n)<O(n!)< O(n ^ n)