数据结构-第一章-概述
1.数据结构的基本概念
1.1.基本概念和术语
- 数据:信息的载体,在计算机科学中指所有能输入到计算机中并且被计算机程序处理的符号的总称
- 数据元素:数据的基本单位,在计算机程序中常作为一个整体进行考虑和处理,一个数据元素由若干数据项组成
- 数据项:构成数据元素的不可分割的最小单位
- 数据对象:数据的一个子集,性质相同的数据元素的集合
- 数据类型:一个值的集合和定义在此集合上的一组操作的总称
- 抽象数据类型ADT:
- 由用户定义,用以表示应用问题的数据模型
- 信息隐蔽和数据封装,使用与实现相分离
- 一个数学模型及定义在该模型上的一组操作
- 其定义仅取决于它的一组逻辑特性,而与其在计算机内部如何表示和实现无关
- 通常用(数据对象、数据关系、基本操作集)这样的三元组表示抽象数据类型
- 抽象数据类型ADT:
- 数据结构:相互之间存在一种或多种特定关系的数据元素的集合,包含三方面的内容(逻辑结构、存储结构、数据的运算)
- 结构:数据元素相互之间的关系
- 结构:数据元素相互之间的关系
1.2.数据结构的三要素
逻辑结构
- 人为定义的,用户可以看到
- 对数据之间关系的描述,与数据的存储结构无关,同种逻辑结构可有多种存储结构
- 数据的逻辑结构与数据元素的相对(存储)位置无关
- 分类:线性结构、集合、树形结构、图状结构
存储结构
- 计算机如何存储(结点及结点关系)
- 数据的逻辑结构在计算机中的表示
- 分类:顺序存储、链式存储、索引存储、散列存储(索引方法的一种延伸和扩展)
数据的运算
- 施加在数据上的运算包括运算的定义和实现
2.算法及算法的评估
2.1.算法
- 定义:由基本运算及规定的运算顺序所构成的完整的解题步骤
- 特性:有穷性、确定性、输入、输出、可行性
- 设计目标:正确性、可读性、健壮性、效率和低存储量需求
2.2.算法评估
- 同一个问题求解,一般会存在多种算法,这些算法在时空开销上的优劣往往表现出 “时空折中”(trade-off)的性质
空间复杂度
- 定义:算法所消耗的存储空间,为问题规模n的函数
时间复杂度
- 定义:算法中基本操作的执行次数(最深层循环内的语句)作为算法时间复杂度的度量【严格定义,请参考《算法导论》】
- 时间复杂度的计算:基本操作执行次数不仅跟初始输入的数据规模有关还和数据本身有关
- 循环主体中的变量参与循环条件的判断:代入条件进行计算(着重观察数量级)
- 循环主体的变量与循环主体无关:递归程序(公式递推、递归树、代换法)、非递归程序(直接累计计数)
- 常见渐近时间复杂度的比较:
- O(1) < O(log2n) < O(n) < O(nlog2n) < O(n2) < O(n3) < O(2n) < O(n!) < O(nn)
作者:方知有
Motto: 热爱可抵岁月漫长
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须在文章页面给出原文连接,否则保留追究法律责任的权利。
所有评论和私信都会在第一时间处理,如有问题或建议,请多多赐教!
支持博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!