网上整理的,有侵权,发1004332984qq.com
c语言----数据结构
1.基础知识
1.数据元素是数据的基本单位。
2.数据项是数据不可分割的最小单位。
3.数据结构及其形式定义:
数据结构:互相之间存在一种或多种特定关系的数据元素的集合。
四种基本结构:
a.集合
b.线性结构
c.树形结构
d.图(网)状结构
4.数据结构的
逻辑结构:抽象的,与现实无关,与算法设计有关。
物理结构:存储结构
a.顺序存储结构----位置相邻
b.链式存储结构----指针表示关系
5.数据类型
抽象数据类型(ADT)
ADT = 数据对象、数据关系、基本操作。
ADT 细分为: 原子类型、固定聚合、可变聚合类型。
6.算法的概念
是对待定问题求解步骤的一种的描述,它是指令的有限序列,其中一个指令表示一个或多个操作。
7.算法的五个特征
a.有穷性
b.确定性
c.可行性
d.输入
e.输出
8.算法设计要求(4)
a.正确性
b.可读性
c.健壮性
d.效率与低存储量
正确性有四个层次,通常要达到c层
9.算法的时间复杂度
常见:
1.常数阶O(1):时间与数据规模无关,如交换两个变量值。
2.线性阶O(n):时间和数据规模呈线性关系,如单循环里的操作。
3.平方阶O(n²):执行次数是n的平方,如双重循环。
4.立方阶O(n³):执行次数是n的立方,如三重循环。
5.k次方阶O(n^k):执行次数是n的k次方,如多重循环。
6.指数阶O(2^n):随着n的上升,运算次数呈指数增长。
7.对数阶O(log n):执行次数呈对数缩减。
8.线性对数阶O(n log n):在对数阶的基础上,进行线性n倍乘积
时间复杂度:
是通过估计算法的操作单元数量来计算的,每个操作单元的运行时间是相同的。
总运行时间是算法的操作单元数量乘以每个单元的运行时间,最多相差一个常量系数。
因此,时间复杂度通常用函数T(n)表示,其中n是问题的规模。时间复杂度的分类基于函数T(n)的形式,
例如T(n) = O(n)的算法被称为“线性时间算法”,而T(n) = O(2^n)的算法被称为“指数时间算法”。
空间复杂度的定义和常见级别:
空间复杂度是对一个算法在运行过程中占用内存空间大小的度量。它包括存储空间
和用于数据操作的辅助空间。常见的时间复杂度级别包括O(1)和O(n),
其中O(1)表示常数阶,与数据量无关;O(n)表示线性阶,与数据量呈线性关系。
s(n) = O(n)