数据结构day4
数据结构day4
1.数据结构与算法
数据结构:数据结构由:1.逻辑结构2.存储结构(物理结构)3.数据的运算 构成
逻辑结构和存储结构不是对立的
而逻辑结构中,又分为了:1.集合(数据集合之间一般无关)2.线性结构(一对一之间有关系)3.树状结构(部分数据之间有关系)4.网状结构(所有数据之间都有关系)
存储结构(物理结构)也分成:1.顺序存储 2.链式存储 3.索引存储 4.散点存储
graph LR
A[数据结构] --> B[逻辑结构]
A --> C[存储结构]
A --> E[数据的运算]
B -->F[集合]
B -->G[线性数据]
B -->H[树状结构]
B -->I[网状结构]
F -->J[数据之间一般没有关联]
G -->K[一对一之间有关]
H -->L[部分数据之间有关系]
I -->M[所有数据之间都有关系]
C -->O[顺序存储]
C -->P[链式存储]
C -->Q[索引存储]
C -->R[散点存储]
2.算法
算法是对特定问题求解的步骤
在计算机中本质上是指令的有限序列。
也就是在计算机科学与技术这门学科中,
指令要靠 代码 或 伪代码 去实现和表述的。
算法的基本特征:
1.有穷性:不能死循环
2.确定性:同一个算法,相同的输入,输出一定相同
3.可行性
4.输入
5.输出
好算法的特性:
1.正确性
2.健壮性:对于非法数据的处理
3.可读性
4.高效性
5.低存储
3.复杂度
时间复杂度
算法的时间复杂度,往往指的是【核心语句的执行总次数】
不考虑常数的加减和倍数关系,只考虑量级
如果循环里面套循环,那么循环外面的次数就要乘以循环内的次数。
算法中的O(n2)和微积分中的O(x2)有什么区别
算法中的O(n^2)指的是当n趋向于无穷的时候,大于等于执行次数本身的数量级,也就是算法的最大数量及
微积分中的O(x2)指的是x趋向于0时,x2的高阶无穷小
我们把时间复杂度计作T(n)
T(n)=O(f(n))
空间复杂度
空间复杂度计作O(g(n)), 次算法额外用了存储器多少个单元,不包括输入和输出数据的空间
4.线性表
具有相同数据类型的n个数据元素的有限序列,
根据不同可能需要实现访问,修改,插入,删除,查找,排序等功能
线性表更强调 数据元素与数据元素之间的关系。