码迷,mamicode.com
首页 > 其他好文 > 详细

数据结构(一)数据结构基础

时间:2019-03-02 18:45:29      阅读:244      评论:0      收藏:0      [点我收藏+]

标签:线性结构   计算   基本操作   最优   评价   矩阵   硬件   节点   ade   

 

数据结构的基础概念

数据是表征客观事物的可记录可识别的符号集合。

数据:

描述客观事物的数值、字符以及一切能输入到计算机且能被处理的符号集合。

数据元素:

数据元素是组成数据的基本单位,是数据集合的个体。

数据对象:

数据对象是性质相同的数据元素的集合,是数据集的一个子集。

数据结构:

数据结构,是相互之间存在一种或多种特定关系的数据元素集合。强调是带有结构的数据元素的集合,数据元素之间的相互关系,即数据的组织形式,即数据的组织形式。

数据类型:

一组性质相同的值集合以及定义其上的一组操作的集合。

抽象:

抽象是计算机技术的本质技术。抽象数据类型ADT:就是定义在一个模型上的一组操作的集合。其特点是抽象和隐蔽。包括定义和实现两大方面。

数据结构的内容:

数据结构的内容,即数据结构的研究范围;数据结构注重的是数据元素之间的相互关系。数据结构的内容包括逻辑结构和数据结构的存储结构及运算集合。

【数据结构的逻辑结构】

数据元素之间存在四种基本的逻辑结构:

(1) 集合结构:集合是属于与不属于简单的关系; (2) 线性结构:结构中的数据元素之间存在着一对一的线性关系:如线性表(学籍表); (3) 树形结构:结构中的数据元素之间存在着一对多的层次关系:如树(学校组织结构图); (4) 图形结构:结构中的数据元素之间存在着多对多的任意关系:如图(网络节点图); 综上所述,数据的逻辑结构可概括为: ? 线性结构-----线性表、栈、队、字符串、数组、广义表 ? 非线性结构----树、图 【数据结构的存储结构】:是逻辑结构在计算机中的存储映象,也是在计算机中的实现。

逻辑结构和存储结构之间的关系:

存储结构是逻辑关系的映象。逻辑结构是数据结构的抽象,存储结构是数据结构的实现,两者综合起来建立了数据元素之间的结构关系。

数据元素之间关系在计算机中的存储映像分为:

? 顺序映象(顺序存储结构,如数组,就是一组连续配置的单元) ; ? 非顺序映象(非顺序存储结构,如链表,是一组任意配置的单元,通过指针连接起来,维持逻辑关系)

运算集合:

定义在数据集及数据元素关系集上的运算操作集合; 数据结构的内容:按照一定的逻辑关系组织起来的一批数据,按一定的映像方式存放在计算机中,并在其上定义运算集合,就构成数据结构内容的三要素。

算法性能评价:

【性能评价】应是问题规模的函数,以刻画表征问题规模的大小。 【问题规模】对于不同的问题其含义不同: 如矩阵的阶、多项式的项数、图的顶点数、集合的个数等,是反映问题大小的本质数目。

【时间数量关系的计算方法】

算法实际执行时间与机器硬件和软件环境相关(比如两个机器的性能指标不同,就不便比较算法执行的快慢),舍弃机器环境差异影响,语句执行时间本质就是语句执行次数,与机器环境无关。 因此算法的执行时间就是算法所有语句的执行次数之和。

【算法的时间复杂度T(n)】

一个算法的时间复杂度T(n)是该算法的时间度量, 计作: T(n)=O(f(n)) 它表示随问题规模 n 的增大,算法的执行时间的增长率和 f(n)的增长率相同,称图 1.8 多种数量级的时间复杂度图示 作算法的渐进时间复杂度,简称时间复杂度。 【常用算法时间复杂度】 数据结构中常用的时间复杂度频率计数有 7 个: O(1) 常数型 O(n)线性型 O(n2)平方型 O(n3)立方型 O(2n)指数型 O(log2n)对数型 O(nlog2n)二维型 按时间复杂度由小到大递增排列成表 1-3(当 n 充分大时)。 不同数量级的时间复杂度的形状如图 1.6 所示,表 1-3 与图 1.6 是同一问题的不 同表示形式。一般情况下,随 n 的增大,T(n)的增长较慢的算法为最优的法。 从中我们应该选择使用多项式阶 O(nk)的算法,而避免使用指数阶的算法。

常用的时间复杂度频率表

技术图片

【最坏时间复杂度】 :是指执行基本操作的最大次数。基本操作时指算法中基本运算的操作。

【算法的空间性能分析】 类似于时间复杂度的讨论,一个算法的空间复杂度 S(n)定义为该算法所耗费的存 储空间的数量级,它也是问题规模 n 的函数。记做: S(n)=O(f(n)) 一般情况下,一个程序在机器上执行时,除了需要寄存本身所用的指令、常数、 变量和输入数据以外,还需要一些对数据进行操作的辅助存储空间。其中对于输 入数据所占的具体存储量只取决于问题本身,与算法无关,这样我们只需要分析 该算法在实现时所需要的辅助空间单元个数就可以了。若算法执行时所需要的辅 助空间相对于输入数据量而言是个常数,则称这个算法为原地工作,辅助空间为 O(1)。

算法的时间复杂度和空间复杂度合称为算法的复杂度。

算法和算法描述

【算法的定义】算法是规则的有限集合,是为解决特定问题而规定的一系列操作。也就是说算法是处理步骤的序列集合。 【算法的特性】 :有限性、确定性、可行性和输入输出特性。 【算法设计的要求】 算法需要保证正确性、可读性、健壮性和高效率低存储量等问题。

算法的正确性是不言而喻的,正确可分为三个层次:1、一般数据能得出要求结果;2、精心选择的边界数据也能得到要求结果;3、所有合法数据都能得到要求结果。一层比一层要求更高。

可读性就是便于理解和交流,有助于合作开发。 ? 健壮性就是耐折腾,非法操作时也不至于瘫痪。 ? 高效率和低存储即:执行效率高,存储容量少,但往往需要折中。

数据结构(一)数据结构基础

标签:线性结构   计算   基本操作   最优   评价   矩阵   硬件   节点   ade   

原文地址:https://www.cnblogs.com/ST-2017/p/10462286.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!