数据结构2--时间复杂度(转载)

1、基础概念

1)对数 对数阶

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

2)线性对数阶(排序的最快算法也就是nlogn)

在这里插入图片描述

3)平均时间复杂度和最坏时间复杂度

平均时间复杂度是指所有可能的输入实例均以等概率出现的情况下,该算法的运行时间。
最坏情况下的时间复杂度称最坏时间复杂度。一般讨论的时间复杂度均是最坏情况下的时间复杂度。

2、复杂度总结

算法时间复杂度描述
常量(Constant)O(1)操作的数量为常数,与输入的数据的规模无关。
对数(Logarithmic)O(log n)操作的数量与输入数据的规模 n 的比例是 log2 (n)。二分法
线性(Linear)O(n)操作的数量与输入数据的规模 n 成正比。循环
平方(Quadratic)O(n2)操作的数量与输入数据的规模 n 的比例为二次平方。双重循环
立方(Cubic)O(n3)操作的数量与输入数据的规模 n 的比例为三次方。三重循环
指数(Exponential)O(2n) O(kn) O(n!)指数级的操作,快速的增长。n = 20 -> 1048576 operations

3、排序的时间复杂度

在这里插入图片描述

4、常用数据结构的时间复杂度

在这里插入图片描述
下图中树的操作时间都是平均时间,最坏时间是O(n);
hashMap调整容量:O(n)。其他都是O(1)

Data StructureAddFindDeleteGetByIndex** **
Linked listO(1)O(n)O(n)O(n)
Array listO(1)O(n)O(n)O(1)
StackO(1)-O(1)-
QueueO(1)-O(1)-
HashSet、table、mapO(1)O(1)O(1)-
Tree based set (SortedSet)O(log n)O(log n)O(log n)-
AVL树O(log n)O(log n)O(log n)
红黑树O(log n)O(log n)O(log n)
Btree 、B+ treeO(log n)O(log n)O(log n)
O(log n)O(n)O(n)

堆 Heap/PriorityQueue
插入:O(log n)
删除最大/小值:O(log n)
抽取最大/小值:O(log n)
查找最大/小值:O(1)
查找其他值:O(n)
删除:O(n)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值