大O表示法(Big0)

首先了解两个概念
时间复杂度:估算程序执行的次数
空间复杂度:估算程序所占用的存储空间

  • 一般用大O来描述复杂度,它表示是数据规模N对应的复杂度
  • 忽略常数,系数,低阶
  • 9 >> O(1)
  • 2n+3>>O(n)
  • 4n3+3n2+22n+100>>O(n^3)
image.png
根据规则 忽略常数,系数,低阶

8 = 2^3 = log2(8) 用logn表示
16 = 2^4 = log2(16) 用logn表示
统一表示为log2(n) 用大O表示O(logn)
1+2*log2(n)+log2(n) (1+3n) = 1+3log2(n)+2nlog2(n)=O(logn+nlogn)
=O(nlogn)
注意:大O表示法紧紧是一种粗略的分析模型,是一种估算,能帮助我们短时间内了解一个算法的执行效率
时间复杂度:大O表示渐进的时间复杂度

常见的的时间复杂度

image.png

也可以借助函数生成工具对比复杂度的大小
https://zh.numberempire.com/graphingcalculator.php

时间复杂度对比

数据规模较小时对比


image.png

数据规模比较大时对比


image.png

X 数据规模
Y 执行的时间复杂度

空间复杂度

image.png

算法的优化的方向

image.png

一个用于联系算法的好网站

https://leetcode.com
https://leetcode-cn.com

你可能感兴趣的:(大O表示法(Big0))