数据结构理论

目录

基本概念和术语

数据

数据元素

数据项

数据对象

数据结构

数据的结构

逻辑结构

存储结构(物理结构)

数据类型

定义

原子数据类型

结构数据类型

[抽象数据类型(Abstract Data Type,ADT)](#抽象数据类型(Abstract Data Type,ADT))

算法和算法分析

算法

算法设计要求

时间复杂度

空间复杂度


基本概念和术语

数据

对客观事物的符号表示,描述客观事物的数、字符、以及所有能输入到计算机中,被计算机程序识别和处理的符号的集合。

包括数值型数据和非数值型数据。

数据元素

数据的基本单位,又别称元素、结点、记录。

一个数据元素可由若干个数据项组成。

数据项

数据项时数据的不可分割的最小单位。

一个数据元素可由若干个数据项组成。

数据对象

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

数据结构

相互之间存在一种或多种特定关系的数据元素的集合。

形式定义

数据结构是一个二元组

(D,S)

D是数据元素的有限集,S是D上关系的有限集。

数据的结构

逻辑结构

集合结构

线性结构

树形结构

图形结构(网状结构)

存储结构(物理结构)

顺序存储

链接存储

索引存储

散列存储

数据类型

定义

数据类型是一个数据结构和定义在这个数据结构上的一组操作的总称。

原子数据类型

是不可分解的数据类型,如C语言中的整型(int),实型(float),字符型(char),指针类型(*)和空类型(void)等。

结构数据类型

由若干成分(原子类型或结构类型)按某种结构组成的数据类型,结构数据类型可以看作是一种数据结构和定义在其上的一组操作组成的整体。如数组,由若干分量组成,每个分量可以是整数,也可以是数组(如int A[10])。

抽象数据类型(Abstract Data Type,ADT)

一个数学模型以及定义在该模型上的一组操作。

个人认为是一种模板化数据结构,即保留逻辑特性,但它的数据元素没有限制具体的数据类型,比如说一个链表可以是整型的、浮点型的,集合可以套集合等等等等。

三元组表示抽象数据类型。

(D,S,P)

D是数据对象,S是D上的关系集,P是对D的基本操作集。

算法和算法分析

算法

算法

算法是对特定问题求解步骤的一种描述,它是指令的有限序列。

有穷性

算法在执行有穷步后能结束。

确定性

每步都是确切的、无歧义。

可行性

操作可做。

输入

有0个或多个输入。

输出

有一个或多个输出。

算法设计要求

正确性

满足具体问题的需求。

可读性

偏于理解和修改。

健壮性

当输入数据非法时,也能适当反应。

效率高

执行时间少。

空间省

执行中需要的最大存储空间。

时间复杂度

渐进时间复杂度

时间复杂度是问题规模n的函数 f(n)

T(n)=O(f(n))

频度

语句重复执行的次数。

常量阶O(1)

{}

线性阶O(n)

for(i=0;i<n;i++){}

平方阶O(n\^2

for(i=0;i<n;i++)

for(j=0;j<n;j++)

{}

对数阶O(logn)

for(i=0;i<n;i=i*2){}

指数阶O(2\^n

for(i=1;i<=pow(2,n);i++){}

排列阶O(n!)

for(i=j=1;i<=j;i++,j=j*(j+1)){}

空间复杂度

空间复杂度

算法执行时所需要的存储空间的量度,也是问题规模的函数

S(n)=O(f(n))

相关推荐
辞旧 lekkk26 分钟前
【c++】封装红黑树实现mymap和myset
c++·学习·算法·萌新
星轨初途31 分钟前
C++的输入输出(上)(算法竞赛类)
开发语言·c++·经验分享·笔记·算法
极地星光44 分钟前
Qt/C++ 单例模式深度解析:饿汉式与懒汉式实战指南
c++·qt·单例模式
yuuki2332331 小时前
【C++】类和对象(上)
c++·后端·算法
再睡一夏就好1 小时前
string.h头文件中strcpy、memset等常见函数的使用介绍与模拟实现
c语言·c++·笔记·string·内存函数·strcpy
稚辉君.MCA_P8_Java1 小时前
Gemini永久会员 快速排序(Quick Sort) 基于分治思想的高效排序算法
java·linux·数据结构·spring·排序算法
cpp_25011 小时前
P5412 [YNOI2019] 排队
数据结构·c++·算法·题解·洛谷
kingmax542120082 小时前
图论核心算法(C++):包括存储结构、核心思路、速记口诀以及学习方法, 一站式上机考试学习【附PKU百练,相关练习题单】
c++·算法·图论·信奥赛·上机考试·百练·pku
罗湖老棍子2 小时前
【例9.15】潜水员(信息学奥赛一本通- P1271)
c++·算法·动态规划·二维费用背包
_OP_CHEN2 小时前
算法基础篇:(二十一)数据结构之单调栈:从原理到实战,玩转高效解题
数据结构·算法·蓝桥杯·单调栈·算法竞赛·acm/icpc