数据结构(Data structure)是指一组相互之间存在一种或多种特定关系的数据的数据的组织方式和他们在计算机内的存储方式,以及定义在该组数据上的一组操做。算法
1)数据(计算机加工对象)的逻辑结构数据库
2)实现各类基本操做的算法编程
计算机解决问题的步骤分为:数据结构
数据的逻辑结构是指数据以及数据的组织方式函数
1976年瑞士计算机尼克劳斯提出 “算法+数据结构=程序”
spa
数据结构分为:数据的逻辑结构、数据的存储结构,数据的基本运算设计
数据data:全部能被计算机处理的符号的集合指针
数据元素dataElement:是数据这个集合中的一个个体即数据的基本单位对象
数据项date item :数据元素经常还可分为若干个数据项,数据项是数据具备意义的 最小单位blog
如图所示,三种之间是包含关系,在数据库中数据项又称为字段或域 。它是数据的不可分割的最小表示单位。
实际问题中的数据称为原始数据
逻辑结构:指数据元素之间的结构关系
物理结构(存储结构):指书记接哦古在机内的表示,数据的逻辑结构在计算机中的实现。
逻辑结构的类型 :集合、线性结构、树状结构、图状结构
数据的存储结构
数据结构的存储包含数据元素的存储以及其逻辑关系的存储
存储结构可分为:顺序存储结构、链式存储结构、索引存储方式和散列存储方式等
顺序存储结构:借助数据元素的相对存储位置来表示数据的逻辑结构;线性表的顺序存储方法:将表中的结点一次存放在计算机内存中一组连续的存储单元中。
特色:1)预先分配好长度,须要预估存储数据须要的存储量
2)插入和删除须要移动其余元素
3)存取快捷,是随机存取结构
链式存储方式:数据元素地址的指针表示数据的逻辑结构
数据项|指针项
特色:
1)动态分配,不须要预先肯定内存分配
2)插入和删除不须要移动其余元素
3)非随即存取结构
索引存储方式:借助索引表中的索引指示存储节点的存储位置
散列存储方式:用散列函数知识各节点的存储位置
运算就是指在某种逻辑结构上施加的操做,即对逻辑结构的加工
加工型运算:其操做改变原逻辑结构的值
引用型运算:其操做不改变原洛基结构的值
创建——查找——读取——插入——删除
算法规定了求解给定类所需的全部“处理步骤”以及执行顺序,
使给定类型问题能在有限时间内被机械的求解
算法必须使用某种语言描述:
1.程序
2.介于天然语言和程序设计语言的伪代码
3.非形式算法(天然语言)
4.框图(N-S图)
1.3算法描述
一个算法是对特定问题求解步骤的一种描述,它是指令有穷序列
算法具备如下特性:
1)有穷性 2) 肯定性 3)可行性 4)输入 5)输出
算法的设计应知足:
1)正确性:对于合法的输入产生符合要求的输出
2)易读性:算法应该易读、便于交流,这也是保证算法正确性的前提;
添加注释也是一种增长可读的办法;
3)健壮性:当输入非法时,算法还能作出适当的反应而不会崩溃,如输出错误信息;
算法中应该考虑适当的错误处理;
4)时空性; 一个算法的时空性是指算法的世家复杂度和空间复杂度,算法分析主要分析算法的时间
复杂度和空间复杂度,目的是提升算法的效率。解决同一问题的算法能够有多种。 咱们但愿从中选出最优的算法,效率高或者存储空间小。为此,须要对算法进行评估,分析 。
一般考虑两个度量:
❖ 时间复杂度: 算法运行时须要的总步数,通
常是问题规模的函数。
❖ 空间复杂度: 算法执行时所占用的存储空间,一般是问题规模的函数。