数据结构(一):基本概念和初识算法

数据:所有能被输入到计算机中,且能被计算机处理的符号的集合。是计算机操作的对象的总称。

数据元素:数据(集合)中的一个“个体”,数据及结构中讨论的基本单位

数据项:数据的不可分割的最小单位。一个数据元素可由若干个数据项组成。

数据类型:在一种程序设计语言中,变量所具有的数据种类。整型、浮点型、字符型等等

逻辑结构:数据之间的相互关系。

集合 结构中的数据元素除了同属于一种类型外,别无其它关系。

线性结构 数据元素之间一对一的关系

树形结构 数据元素之间一对多的关系

图状结构或网状结构 结构中的数据元素之间存在多对多的关系 

物理结构(存储结构):数据在计算机中的表示。物理结构是描述数据具体在内存中的存储(如:顺序结构、链式结构、索引结构、哈希结构)等

在数据结构中,从逻辑上可以将其分为线性结构和非线性结构

数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立。实现应用程序是“逻辑结构”,存储的是“物理结构”。逻辑结构主要是对该结构操作的设定,物理结构是描述数据具体在内存中的存储。

顺序存储结构中,线性表的逻辑顺序和物理顺序总是一致的。但在链式存储结构中,线性表的逻辑顺序和物理顺序一般是不同的。

抽象数据类型(ADT): 

我们对已有的数据类型进行抽象

更有利于描述这个世界,如:用树或者图画遗传族谱。

是一个数据模型及定义在该模型上的一组运算。对一个抽象数据类型进行定义时,必须给出它的名字及各运算的运算符名,即函数名,并且规定这些函数的参数性质。

算法的基本概念(下一篇详细介绍)

算法五个特性: 有穷性、确定性、可行性、输入、输出

算法设计要求:正确性、可读性、健壮性、高效率与低存储量需求。(好的算法)

设计算法在执行时间时需要考虑:算法选用的规模、问题的规模

时间复杂度

评估执行程序所需的时间。可以估算出程序对处理器的使用程度。

算法的执行时间与原操作执行次数之和成正比。

时间复杂度有小到大:O(1)、O(logn)、O(n)、O(nlogn)、O(n2)、O(n3)。幂次时间复杂度有小到大O(2n)、O(n!)、O(nn)

空间复杂度

评估执行程序所需的存储空间。可以估算出程序对计算机内存的使用程度。

若输入数据所占空间只取决于问题本身,和算法无关,则只需要分析除输入和程序之外的辅助变量所占额外空间。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容