😀前言
本篇博文是关于数据结构基础入门,希望你能够喜欢
🏠个人主页:晨犀主页
🧑个人简介:大家好,我是晨犀,希望我的文章可以帮助到大家,您的满意是我的动力😉😉
💕欢迎大家:这里是CSDN,我总结知识的地方,欢迎来到我的博客,感谢大家的观看🥰
如果文章有什么需要改进的地方还请大佬不吝赐教 先在此感谢啦😊
文章目录
- 数据结构基础
- 数据结构基础定义
- 什么是数据
- 什么是数据元素
- 数据项
- 三者之间的关系:
- 数据对象
- 数据结构:
- 直接前驱:
- 直接后驱
- 数据结构包含三个方面
- 逻辑结构
- 抽象数据类型
- ADT常用定义格式
- 算法的描述与分析
- 算法定义
- 算法描述
- 算法特征
- 算法优劣基本标准
- 算法的时间复杂度
- 时间复杂度的求解
- 示例一
- 示例二
- 算法的时间复杂度计算规则
- 算法的时间复杂的比较
数据结构基础
数据结构基础定义
什么是数据
数据:能够被计算机识别、存储和加工处理的信息载体。
列如:数值、字符、表格、图像、动画等等
什么是数据元素
数据的基本单位,在计算机中通常作为整体进行处理。
数据项
数据项:具有独立含义的最小标识单位,也称为域。数据元素有时可以由若干数据项构成。
三者之间的关系:
数据>数据元素>数据项
列:学生表>个人纪录>学号、姓名
数据对象
数据对象:性质相同的数据元素的集合,是数据的一个子集。
数据结构:
数据结构是一种相互之间存在一种或多种特定关系的数据元素的集合,指的是数据元素之间的相互关系,是数据的组织形式。
直接前驱:
对表中任意一个结点,与他相邻且在他前面的结点称为直接前驱
直接后驱
对表中任意一个结点,与他相邻且在他后面的结点称为直接后驱
数据结构包含三个方面
- 数据的逻辑结构
- 数据的存储/物理结构
- 数据的操作/运算
逻辑结构
数据元素之间抽象化的相互关系,与数据存储无关,独立于计算机。
抽象数据类型
ADT = (D,S,P)
D:数据对象
S: D上的关系集
P:D上的操作集
ADT常用定义格式
ADT抽象数据类型名{
数据对象:<数据对象的定义>
数据关系:<数据关系的定义>
基本操作:<基本操作的定义>
}ADT抽象数据类型名
算法的描述与分析
算法定义
一个有穷的指令,这些指令为解决某一特定任务规定了一个运算序列。
算法描述
自然语言、流程图、程序设计语言、伪码。
算法特征
有穷性:必须在执行有穷步后结束,且每一步都必须在有穷时间内完成
确定性:每步定义都是确切、无歧义的
可行性:所有的操作都是可以通过已经实现的基本操作执行有限次数
输入:有0个或多个输入
输出:有一个或多个输出(处理结果)
算法优劣基本标准
- 正确性
- 可读性
- 健壮性
- 高效性(时间代价、空间代价)
算法的时间复杂度
算法中,进行基本运算的次数越少,其运行时间也就相对越少;基本运算次数越多,其运行时间也就相对越多。所以,通常把算法中包含基本运算次数的多少称为算法的时间复杂度。一个算法的时间复杂度是指该算法的基本运算次数。
一般情况下,算法中基本语句重复执行的次数T(n)是问题规模n的某个函数f(n),算法的时间量度记作:
T(n)=O(f(n))
其中,记号“O”读作“大O”,即Order(数量级)的缩写,表示随问题规模n的增大,算法执行时间的增长率和f(n)的增长率相同,称作算法的渐进时间复杂度,简称时间复杂度。O(n)为算法的时间复杂度。
时间复杂度的求解
时间复杂度是由嵌套最深层语句的频度决定的。
示例一
程序执行次数是常数,时间复杂度为T(n)=O(1)
示例二
取最高级别的项,去该项的系数,那么时间复杂度为T(n)=O(n)
算法的时间复杂度计算规则
加法规则
当两个并列的算法段的时间代价分别为f1(n)=0(g1 (n))和 f2(m)=0(g2(m))时,两个算法段连在一起的算法段时间代价为:
f(n, m)=f1(n)+f2(m)=0 (max(g1(n),g2(m)))
乘法规则(循环语句)
如果存在循环嵌套,关键操作应该在最内层循环中。首先自外向内层层分析每一层的渐近时间复杂度,然后利用大0表示法的乘法规则来计算其时间复杂度。当两个嵌套时间复杂度的时间代价分别为f1(n)=0(g1(n))和 f2(m)=0(g2(m))时,那么整个算法段时间代价为:
f(n, m)=f1(n)*f2(m)=0(g1(n)*g2(m))
算法的时间复杂的比较
当n取得很大时,指数时间算法和多项式时间算法在所需时间上非常悬殊
时间复杂度T(n)按数量级递增顺序为:
常数阶:O(1)
对数阶:O(log2n)
线性阶:O(n)
线性对数阶:o(nlog2n)
平方阶:o(n2)
立方阶:o(n3)
…
K次方阶:O(nk)
文章到这里就结束了,如果有什么疑问的地方请指出,诸大佬们一起来评论区一起讨论😁
希望能和诸大佬们一起努力,今后我们一起观看感谢您的阅读🍻
如果帮助到您不妨3连支持一下,创造不易您们的支持是我的动力🤞