数据结构 | 简要
简要
背景:
数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这些运算后所得到的新结构仍然是原来的结构类型。
概念:
名词 | 说明 |
---|---|
数据 | 所有能被输入到计算机中,且能被计算机处理的符号的集合。是计算机操作的对象的总称。 |
数据元素 | 数据(集合)中的一个个体 ,数据及结构中讨论的基本单位 |
数据项 | 数据的不可分割的最小单位。一个数据元素可由若干个数据项组成。 |
数据类型 | 在一种程序设计语言中,变量所具有的数据种类。整型、浮点型、字符型等等 |
集合 | 结构中的数据元素除了同属于一种类型外,别无其它关系。 |
线性结构 | 数据元素之间一对一的关系 |
树形结构 | 数据元素之间一对多的关系 |
图状结构或网状结构 | 结构中的数据元素之间存在多对多的关系 |
物理结构/存储结构 | 数据在计算机中的表示。物理结构是描述数据具体在内存中的存储(如:顺序结构、链式结构、索引结构、哈希结构)等 |
逻辑结构 | 数据之间的相互关系。 |
在数据结构中,从逻辑上可以将其分为线性结构和非线性结构
数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立。实现应用程序是逻辑结构,存储的是物理结构。逻辑结构主要是对该结构操作的设定,物理结构是描述数据具体在内存中的存储(如:顺序结构、链式结构、索引结构、希哈结构)等。
顺序存储结构中,线性表的逻辑顺序和物理顺序总是一致的。但在链式存储结构中,线性表的逻辑顺序和物理顺序一般是不同的。
算法五个特性: 有穷性、确定性、可行性、输入、输出
算法设计要求:正确性、可读性、健壮性、高效率与低存储量需求。(好的算法)
算法的描述有伪程序、流程图、N-S结构图等。E-R图是实体联系模型,不是程序的描述方式。
设计算法在执行时间时需要考虑:算法选用的规模、问题的规模
时间复杂度:算法的执行时间与原操作执行次数之和成正比。时间复杂度有小到大:O(1)、O(logn)、O(n)、O(nlogn)、O(n2)、O(n3)。幂次时间复杂度有小到大O(2n)、O(n!)、O(nn)
空间复杂度:若输入数据所占空间只取决于问题本身,和算法无关,则只需要分析除输入和程序之外的辅助变量所占额外空间。
本文由作者按照 CC BY 4.0 进行授权