数据结构
数据结构
相互之间存在一种或多种特定关系的数据元素的集合。
逻辑结构
集合,所有数据在同一个集合中,关系平等。(数组中的每一个int)
线性,数据和数据之间是一对一的关系(队列,链表,数组(线性表的一种体现))
树, 一对多(高效)
图,多对多
物理结构(在内存当中的存储关系)
顺序存储,数据存放在连续的存储单位中。逻辑关系和物理关系一致
链式,数据存放的存储单位是随机或任意的,可以连续也可以不连续。
struct Per 数据元素
{
char name;//数据项(变量)
int age;
char phone;
}
struct Per list[100]; //数据对象(数据元素的集合)
数据的类型,ADT abstract datatype(抽象数据类型)
是指一组性质相同的值的集合及定义在此集合上的一些操作的总称。
原子类型,int,char,float
结构类型,sturct, union,
抽象数据类型, 数学模型 + 操作。(相当于c语言.h的内容,=变量+函数)
程序 = 数据 + 算法
算法:
是解决特定问题求解步骤的描述,计算机中表现为指令的有限序列,每条指令
算法的特征,
1,输入,输出特性,输入是可选的,输出是必须的。(输出-->内存上必须要发生变化)
2,有穷性,执行的步骤会自动结束,不能是死循环,并且每一步是在可以接受的时间内完成。
3,确定性,同一个输入,会得到唯一的输出。
4,可行性,每一个步骤都是可以实现的。
算法的设计,
1,正确性,
语法正确
合法的输入能得到合理的结果。
对非法的输入,给出满足要求的规格说明
对精心选择,甚至刁难的测试都能正常运行,结果正确
2,可读性,便于交流,阅读,理解
3,健壮性,输入非法数据,能进行相应的处理,而不是产生异常
4,高效,存储低,效率高
时间复杂度
一个算法所花费的时间与其中语句的执行次数成正比例,算法中的基本操作的执行次数,为算法的时间复杂度。也就是执行这个算法所花时间的度量。
(大O阶方法)