2023王道考研数据结构第一章---基本概念

1.1

1、数据结构基本概念

1) 数据项、数据元素、组合项

在这里插入图片描述

2)数据对象

具有相同性质的数据元素的集合,是数据的一个子集。
如第一个数据对象是关于财富榜的所有数据元素的集合
第二个则是关于微博账号的数据元素集合
第三个是关于海底捞排队的数据元素集合
在这里插入图片描述

3)数据结构

数据结构是指相互之间存在一种或多种特定关系的数据元素的集合。
关注的是数据元素之间的关系和对这些数据元素的操作,而不关心具体的数据项内容

4)数据类型和抽象数据类型(ADT)

数据类型

(1)原子类型:其值不可再分的数据类型(如bool和int类型)
在这里插入图片描述
(2)结构类型:其值可以再分解成若干份的数据类型(如struct结构体可以分解成x和y两个分量)
在这里插入图片描述

抽象数据类型(ADT)

是抽象数据组织及与之相关的操作。
在这里插入图片描述

2、数据结构三要素

在这里插入图片描述

3、总结

在这里插入图片描述

1.2

1)算法的基本概念

在这里插入图片描述
在这里插入图片描述

2)算法效率的度量

空间复杂度S(n)

在这里插入图片描述

(1)S(n) = O(1)
当问题规模无论怎么变,算法运行所需的内存空间都是固定的常量,算法的空间复杂度就为S(n) = O(1)
在这里插入图片描述
(2)具体怎么算

1、
在这里插入图片描述
4:定义一个 int n 要4个字节
4n:数组中有n个int,一个int要4字节,即4n
4:定义一个 int i 要4个字节
故S(n) = O(4n+8) = O(n)
因为用O表示法,只关注n的阶数

2、
在这里插入图片描述

3、
当多个O相加时,只需取最大的O
在这里插入图片描述
4、函数递归调用带来的内存开销

在这里插入图片描述
S(n) = O(5n) = O(n)
空间复杂度 = 递归调用的深度

5、
在4、的基础上改一下,把变量改成数组
在这里插入图片描述

时间复杂度T(n)

(1)关于O
O表示“同阶”,同等数量级
而且相加时取最大
简单来说O就是取最高阶的值并把系数化为1
故T1(n) = O(3n + 3) = O(3n) = O(n)
T2(n) = O(n^2 + 3n + 1000) = O(n ^2)
T3(n) = O(n^3 + n ^2 + 9999999) = O(n ^3)

(2)加法规则和乘法规则
在这里插入图片描述3)常见的数量级在这里插入图片描述
简单记忆:常对幂指阶
在这里插入图片描述
常数 < 对数 < 幂数 < 指数 < 阶数
1 < log2n < (n < n^2) < 2 ^ n < n!

(4) 快速计算的结论
1、顺序执行的代码只会影响常数项,可以忽略
2、只需挑循环中的一个基本操作分析它的执行次数与n的关系即可

在这里插入图片描述
故这里可只看第4行,执行n次,故T(n) = O(n)
3、如果有多层嵌套循环,只需关注最深层循环循环了多少次
在这里插入图片描述
(5)小练习
在这里插入图片描述
最后的+1,是因为循环到最后一个数的时候,还要循环一次判断,再跳出循环

  • 3
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值