什么是数据结构?
数据结构是研究计算机中非数据值计算问题中的数据对象及它们之间的关系和操作算法。
具体主要包含三个方面的内容:
1,数据的1逻辑结构
2,数据的储存结构
3,数据的操作算法
基本概念
1,数据(信息的载体)
数值数据
非数值数据
2,数据元素
3,数据对象
4,数据结构
集合:数据元素之间属于同一个集合,此外,没有任何关系
线性结构:数据元素之间存在一一对应关系
树状结构:数据元素之间存在一对多的层次关系
图状结构:数据元素之间存在多对多的任意关系
5,数据的存储结构
又称为物理结构,是数据及其逻辑结构在计算机中的表示。
顺序存储:用一组连续存储单元存储数据,数据之间逻辑关系由元素的存储位置来表示
例如,线性表
链式存储:用一组任意存储单元存储数据,数据之间逻辑关系由指针来表示
例如,链表
数据类型
数据类型规定了该类型数的取值范围和这些数据所能采取的操作
什么是算法?
算法(ALgorithm)是计算机求解特定问题的方法和步骤,是指令的有限序列。
通常一个问题可以有很多算法,一个给定算法解决一个特定问题
算法的特性
1,算法可以无输入
2,算法必须有输出
3,有穷性:一个算法必须在执行有穷步之后结束(合法输入),且每一步都在有穷时间内完成
4,确定性:算法中每一条指令必须有确定含义,不存在二义性,相同输入只能得到相同输出
5,可行性:算法描述的操作可以通过已经实现的基本操作执行有限次来完成
算法与程序(program)不同,程序可以通过对一个算法使用某种程序设计语言具体实现。
原则上,任一算法可以用任一一种程序设计语言实现。
算法的有穷性意味着并不是所有的计算机程序都是算法。
算法的评价
1,正确性:算法能满足具体要求,及对于任何合法输入,都会得到正确的输出结果。
2,健壮性(鲁棒性):算法对非法输入的抵抗能力,对错误的输入,算法能做出处理,不至于产生错误动作或陷入瘫痪
3,可读性:一个好的算法应该便于人们的理解和交流。
4,高效性:算法的效率通常指算法的执行时间,同一个问题,执行时间短的算法效率高。
5,低储存:算法在执行过程中需要的最大储存空间,一个好的算法应该占有较少的储存空间。
算法的高效执行时间和低执行储存空间二者不可兼得,识情况而定,一般是牺牲空间换时间。
算法的时间复杂度:
代码大概执行的次数,一般有最好 平均 最坏三种情况
O(1):常量阶
O(n):线性阶
O(n^2):平方阶
O(n^3):立方阶
O(2^n):指数阶
O(log2^n):对数阶
O(n log2^n):二位阶
算法的空间复杂度:
代码运行要开辟的空间次数
计算类似时间复杂度,记作 S(n) = O(f(n))