时间/空间复杂度/数据结构

时间复杂度

推算时间复杂度:

1.统计操作数量

        忽略常数项,忽略所有系数,循环嵌套时使用乘法

2.判断渐进上界

        时间复杂度由最高阶决定

常数阶<对数阶<线性阶<线性对数阶<平方阶<指数阶<阶乘阶

线性阶:单层循环(遍历数组,遍历链表等)

平方阶:嵌套循环

指数阶:常存在与递归函数中

线性对数阶:二叉树,快速排序,归并排序,堆排序

阶乘阶

空间复杂度:占用内存空间

一般只关注最差空间复杂度

1.以最差输入数据为主

当n<10时,空间复杂度为O(1);但当n>10时,初始化的数组nums占用O(n)空间,因此最差空间复杂度为O(n)

2.以算法运行中的峰值内存为准

初始化的数组nums占用O(n)空间,因此最差空间复杂度为O(n)

常数阶:O(1)

对数阶:O(n)

线性阶:O(n^2)

线性对数阶:O(2^n)

对数阶:O(logn)

数据结构

逻辑结构

揭示了数据元素之间的逻辑关系。

线性数据结构:数组,链表,栈,队列,哈希表,元素之间是一对一的顺序关系
非线性数据结构:树,堆,图,哈希表
                树形结构:树,堆,哈希表,元素之间是一对多的关系
                网状结构:图,元素之间是多对多关系

物理结构:连续与分散

连续空间存储(数组)

分散空间存储(链表)

所有数据结构都是基于数组,链表或二者的组合实现的。

基于数组可实现:栈,队列,哈希表,树,堆,图,矩阵,张量(维度大于等于三)等

基于链表可实现:栈,队列,哈希表,树,堆,图等。

基本数据类型

整数类型:byte,short,int(2^8),long

浮点数:float,double

字符类型:char 

布尔类型;bool

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值