一、相关概念
概念
相互之间存在一种或多种特定关系的数据元素的集合。
逻辑结构
集合:所有数据在同一个集合中,关系平等。
线性:数据和数据之间是一对一的关系
树: 一对多
图:多对多
物理结构(在内存当中的存储关系)
顺序存储:数据存放在连续的存储单位中(数组),逻辑关系和物理关系一致
链式:数据存放的存储单位是随机或任意的,可以连续也可以不连续。
数据结构术语
struct Per 数据元素
{
char name;//数据项—>给变量赋予意义
int age;
char phone;
}
struct Per list[100]; //数据对象-->数据元素的集合(数据结构数组)
1.数据的类型
ADT abstruct datatype
是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。
原子类型:int,char,float
结构类型:struct,union
抽象数据类型:数学模型 + 操作 --->ADT
2.程序
程序 = 数据 + 算法
算法
是解决特定问题求解步骤的描述,计算机中表现为指令的有限序列,每条指令表示一个或多个操作。
算法的特征
1.输入,输出特性:输入时可选的,输出时必须的
2.有穷性:执行的步骤会自动结束,不能是死循环,并且每一步是在可以接受的时间内完成。
3.确定性:同一个输入,会得到唯一的输出,结果确定。
4.可行性:每一个步骤都是可以实现的。
算法的设计
1.正确性:
语法正确
合法的输入能得到合理的结果
对非法的输入,给出满足要求的规格说明
对精心选择,甚至刁难的测试都能正常运行,结果正确
2.可读性:便于交流,阅读,理解
3.健壮性:输入非法数据,能进行相应的处理,而不是产生异常
4.高效:存储低,效率高
算法时间复杂度
也就是执行这个算法所花时间的度量
推算时间复杂度
1.用常数1 取代运行时间中的所有加法常数
2.在修改后的运行函数中,只保留最高阶项。
3.如果最高阶存在且不是1,则取除这个项相乘的常数
2n+3, --->O(n)
3n+1; --->O(n)
2n^2 +10;--->O(n^2)
2n^3+3n+1; --->O(n^3)
O(1)<O(logn)<O(n)<O(nlogn)//快排<O(n^2)//冒泡、选择(两个for循环)<O(n^3)//三个for循环<O(2^n)<O(n!)<O(n^n) 后面三个半天出不了结果
标签:struct,基础,---,概念,算法,集合,数据结构,数据,输入 From: https://blog.csdn.net/weixin_71751116/article/details/140600298
越往