数据结构与算法之术语
2020-07-26 23:34
253 查看
数据结构与算法之术语
参考书籍:数据结构与算法分析------C语言描述,Mark Allen Weiss著,机械工业出版社。
一)术语
分析操作问题数学模型算法编写程序求解问题- 数据结构:问题的数学模型,相互存在一种或多种特点关系的数据元素的集合;
- 操作:对数据结构的一系列运算,包括:查询、获取、插入、更新、删除、增添、排序等;
- 操作对象:数据元素;
- 操作对象之间的关系称为结构(逻辑结构)
- 算法:求解问题的策略、操作步骤
- 数据:客观事物的符号表示,计算机加工处理的对象,所有能输入到计算机中并能被计算机处理的符号总称。
- 数据元素:操作对象,是数据的基本单位,不同问题中有不同称呼,如:元素、结点、顶点、记录等
- 数据项:一个数据元素由若干个数据项组成;
- 数据对象:性质相同的数据元素的集合,是数据的一个子集;
二)基本概念:
逻辑结构:
- 操作对象之间的逻辑关系,不考虑具体的存储。
- 分为线性结构和非线性结构:
+ 线性结构:数据元素间一对一的关系
+ 树形结构:数据元素间一对多的关系
+ 图状结构:数据元素间多对多的关系
+ 集合结构:数据元素属于同一集合
物理结构:
- 数据结构在计算机中的表示,也叫存储结构
- 设计存储结构时要存放所有数据元素的值和数据元素间的逻辑关系。
- 一种逻辑结构可以采用不同物理结构存储
- 两种存储结构:
顺序存储映像:顺序存储结构借助数据元素在存储器中的相对位置来表示数据元素之间的逻辑关系
-
非顺序存储映像:链式存储结构借助数据元素存储地址的指针来表示数据元素之间的逻辑关系
数据结构的形式定义:
- Data_structure = (D, S)
- Data_structure:数据结构的名字
- D代表数据结构所有操作对象的集合
- S代表操作对象关系的集合
三)抽象数据类型的表现与实现
- 数据结构采用程序设计语言中的数据类型实现
- 数据类型:一般数据类型和构造数据类型
- 抽象数据类型(Abstract Data Type,简称ADT):一个数据模型及定义在此模型上的一组操作
- 通常使用(D, R, P)三元组表示。D数据对象,S是D上关系的集合,P是D上操作的集合。
- 形式化定义:
ADT 抽象数据类型名 { 数据对象:<数据对象定义> 数据关系:<数据关系定义> 基本操作:<基本操作定义> }ADT 抽象数据类型名 /*基本操作定义格式*/ 基本操作名 (参数表) { 初始条件:<描述> 操作结果:<描述> } //例子: typedef struct{ int e1; //实部 int e2; //虚部 }complex; //定义一个虚数 void add(complex z1, complex z2, complex &sum) //一个基本操作 { sum.e1 = z1.e1 + z2.e1; sum.e2 = z1.e2 + z2.e2; }
四)算法和算法分析
- 算法:求解特定问题的有限的操作步骤
- 算法五个特性:
-
有限性:不能无限操作下去,不能死循环
- 确定性:不能有歧义
- 可行性:每一步用现有技术都能实现
- 输入
- 输出
- 程序设计要求:
-
正确性:一切合法输入都能得到正确输出、语法正确等
- 健壮性
- 可读性
- 效率:时间复杂度
- 存储量 :空间复杂度
- 算法效率的度量:
-
事后统计:代码运行,实际测量
- 事前分析估算:基本操作重复执行的次数,即渐进时间复杂度 常数阶O(1)
- 线性阶O(n)
- 平方阶O(n^2)
- 对数阶O(log n)
- 指数阶O(2^n)
- 多项阶
- 存储空间需求:
-
空间复杂度:算法所需存储空间的度量
- 若额外空间相对输入数据量来说是常数,称此算法原地工作
- 若所需空间量依赖特定输入,除特别指明,均按最坏情况分析
相关文章推荐
- 数据结构与算法基础————基本概念和术语
- 数据结构与算法部分术语中英文对照
- ZH奶酪:【数据结构与算法】基础排序算法总结与Python实现
- 【软考】【数据结构】算法基础
- 常用数据结构及算法C#/Java实现
- 慕课网-玩转算法与数据结构(完整版)
- 【数据结构与算法】图之最小生成树
- 数据结构与算法—斐波那契查找2
- 数据结构及算法篇bsearch crypt lfind lsearch qsort rand srand
- 基于关系数据库系统链式存储的树型结构数据,求某结点下的子树所有结点算法(t-sql语言实现)
- 视频教程-go专业数据结构与算法-Go语言
- Python算法与数据结构(二)------ 顺序表
- Mini-Notes: 数据结构与算法-[第三部分]排序
- 数据结构与算法-选择排序
- 【数据结构与算法】排序算法之五:归并排序
- mysql索引之二:数据结构及算法原理
- 【数据结构与算法】——链表篇
- 数据结构与算法笔记:二
- 算法 & 数据结构——收纳箱算法???
- 数据结构与算法 | Leetcode 141:Linked List Cycle