数据结构的主要任务是通过分析数据对象的结构特征,包括逻辑结构及数据对象之间的关,然而把逻辑结构表示成计算机课实现的物理结构,从而便于计算处理。
一:概念术语
1:数据data 是被计算机处理的符号或符号集合,数据元素data element 是数据的节本单元。数据项 data item 是数据元素的最小单位。数据对象 data object 是性质相同的数据元素的集合,是数据的一个子集。总结:数据结构是数据的组织形式,数据元素之间存在的一种或者多种特定关系的数据元素集合。
数据类型:data type 是按照数据值的不同进行划分的可操作性。咋ic语言中还可以分为院子类型和结构类型,原子类型是不可以再分解的基本类型。包裹整形,结构类型是由若干个类型组合而成。是可以再分解的。
2 数据结构的逻辑结构。是指数据元素之间的相互关系,数据元素之间存在的不同的逻辑关系构成了以下4种结构类型。
集合类型:(集合数据元素没有其它的关系,就是被放在一起的就像都在一个盒子里的叫集合)。
线性结构:(线性结构元素结构关系是一对一并且是一种先后的次序)。
树形结构:(树形的数据元素结构关系是一对多的,就像公司的部门级别)
图形结构:图的数据原始觉狗关系是多对多的。就像我们常见的各大城市铁路。
3 数据的存储(物理)结构
存储结构也称为物理结构。指的是数据的逻辑结构在计算接种的存储形式,数据的存储结构一般可以反应数据元素之间的关系,分为顺序存储结构和链式存储结构。
顺序存储:是把数据原属存放在一组存储地址联系的存储单元里。其数据元素间的逻辑关系和物理关系是一致的。
链式存储:是吧数据元素存放在任意的存储单元里,这组存储单元可以是连续的,也可以是不连续的,数据元素存储关系并不能反映其逻辑关系,因此需要借助指针来表示数据元素之间的逻辑关系。
总结:数据的逻辑结构和物理结构是密切相刮你的,在学习数据的过程中,热河一个算法的设计取决选定的数据逻辑结构。而算法的实现的依赖所采用的存储结构。
4 抽象的数据类型:(abstract data type ADT)是描述具有某种逻辑关系的数据模型。并对在数据模型上进行的一组操作,丑行的数据类型描述的是一株逻辑上的特性。与计算机内部的表示无关。计算机中的整数数据类型的是一个抽象的类型,不同的处理器可能实现方法不同,但是逻辑特性相同。即加减乘除运算是一致的。丑行的意思数据的类型的数学抽象特性而不是指它们的实现方法。丑行的数据类型体现了成簇的世界中的问题分解、抽象、信息隐藏等特性。可以把现实中的大问题分解为多个规模小且容易处理的小问题。然而建立起一个能被计算机处理的数据。并把每个功能模块的实现细节作为一个独立的单元。从而过程与抽象的数据类型中的问题分解类似。
5 算法 algorithm 是解决特定问题求解步骤的描述。在计算机中表现为有限的操作序列。在数据类型建立起来的之后。就要对这行数据类型进行操作,建立起运算集合即程序,原算的建立 方法的好坏直接决定计算机程序效率的高低。
(1)数据结构的算法关系
两者既有联系又有区别 联系是程序=算法+数据结构,数据结构是算法的实现基础。算法总是要依赖某种数据结构来实现的。算法的操作对象是数据结构。区别是数据结构关注是数据的逻辑结构 存储结构有基本的操作。而算法的更多是关注如何在数据结构的节本解决实际问题,算法是标称思想,数据结构是这些思想的基础。
(2)算法的五大特性
有穷性 是指算法在执行有限的步骤之后,自动结束而不是出现无限循环,并且没有个步骤在可接受的时间内完成。
确定性:是指算法执行的每一步骤在一定条件下只有一条执行的路径,也就是相同的输入只能有一个五一的输出结果。
可行性:是指算法的每一步骤都必须可行能够铜鼓哦有次昂的执行次数完成。
输入:是指算法是具有零个输入或者多个输入。
输出:是指算法是指少又一个输出或者多个输出。
6 时间复杂度
在进行算法分析时 语句总是执行次数T(n)是关于问题规模n的函数,进分析次数T(n)随规模n的变化情况确定T(n)的数量级。算法的时间复杂度就是算法的时间复杂度。记作T(n)=O(f(n)),它表示随问题规模n的次数增大,算法的执行时间增长率和f(n)de 增长率相同。
总结:算法的时间复杂度是衡量一个算法好坏的重要指标。一般情况:随着规模n的增大,次数T(n)的增长算法最优算法,常见的时间复杂度哦从小到大一次是O(1)<O(log2n)<O(n)<O(n)
7 空间复杂度
空间复杂度作为算法的所需要的存储空间的量度 记S(n)=O(n),其中n为问题规模,f(n)为语句关于n的所存储的空间函数。一般情况下,一个程序在机器上运行时,除了需要存储成簇本身的指令。常熟 变量 输入数据外,还需要存储对数据的操作的存储单位。若输入数据所占空间只取决问题的本身,和算法无关。这样只需要分析改算法在实现时间所需要的辅助单元即可。若算法执行时所需要的辅助空间相对于输入的数据而言是个常量,则称为算法原地工作,空间复杂度为O(1)。
网友评论