数据结构复习笔记(1)
第一章 绪论
“数据结构”基本概念
-
数据结构是一门研究非数值计算的程序设计问题中计算机的操作对象以及它们之间的关系和操作等的学科
-
术语
- 数据:对客观事物的符号表示,能输入到计算机中并被计算机处理
- 数据元素:数据的基本单位,一个数据元素可由若干数据项组成,数据项是数据的不可分割的最小单位
- 数据对象:性质相同的数据元素的集合。一般来说是某一些数据的一个子集
- 数据结构:相互之间存在着一种或多种特定关系的数据元素的集合
- 结构:数据元素相互之间的关系,一般有4类基本的结构
- 集合:数据元素之间并无关系(除了“处于同一集合中”这一关系)
- 线性结构:数据元素之间一对一
- 树形结构:数据元素之间一对多
- 图状/网状结构:数据元素之间多对多
-
数据的物理/存储结构:数据结构在计算机中的表示/映像。顺序映像、非顺序映像作为计算机中数据元素之间关系的两种不同表示方法,分别对应顺序存储结构与链式存储结构。
-
数据类型:一个值的集合+定义在这个集合上的一组操作。一般分为不可分解的原子类型和成分可以是非结构或结构的结构类型。而结构类型一般分为固定聚合类型(成分数目确定)、可变聚合类型(成分数目不确定)
多型数据类型:具有相同的数学抽象特性,但具体类型可以变化
-
抽象数据类型ADT:一个数学模型+定义在该模型上的一组操作。由三个要素定义
-
数据对象D
-
D上的关系集S
-
对D的基本操作集P
由此,ADT可以用三元组表示
-
“算法”基本概念
算法的特点
- 算法具有5个重要特性:有穷性、确定性(相同输入必有相同输出)、可行性、零个或多个输入、一个或多个输出
- 算法设计的要求:正确性、可读性、健壮性、效率与低存储量
算法的复杂度
程序运行所消耗的时间取决于:
- 算法选用的策略
- 问题的规模
- 对于同一算法,语言越高级,执行效率越低
- 通过编译得到的机器代码的质量
- 机器执行指令的速度
一般来说,算法中基本操作重复执行的次数是问题规模n的某个函数$ f(n) T(n)=O(f(n)) f(n)$的增长率相同,称为“渐进时间复杂度”,简称为“时间复杂度”。某个语句的频度即为该语句重复执行的次数。
与时间复杂度相似,算法的空间复杂度记为。若算法所需的额外空间相对于输入数据量来说是常数,称该算法原地工作
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· DeepSeek在M芯片Mac上本地化部署