大O表示法(Big O)

一般用大O表示法来描述复杂度,它表示的是数据规模n对应的复杂度
忽略常数,系数,低阶
示例:
9 >> O(1)
2n+3 >> O(n)
n^2 + 2n + 6 >> O(n^2) 低阶的直接忽略
n^3 + 3n + 9 + 3 >> O(n^3)

对数阶的细节:
log2n=log29 * log9n  中间常数项被忽略

所以log2n,log9n统称为logn

在算法中如果发生
logn+nlogn则为
其实就是 logn + n 
O(nlogn)

总结:
执行次数                   复杂度                    非正式术语
   12                              O(1)                        常数阶
   2n+3                          O(n)                         线性阶
4n^2 + 2n + 6              O(n^2)                     平方阶
4log2n + 25                  O(logn)                   对数阶
3n+2nlog3n+15            O(nlogn)                   nlogn阶
4n3+3n2+22n+100    O(n^3)                   立方阶
2^n                               O(2^n)                     指数阶
补充:如果是方法形参两个 比如n和k
public static int Test(int n,int k) {
for (int i = 0; i < 5; i++) {
System.out.print();
}
for (int k = 0; k < 5; k++) {
System.out.print();
}
}
此时表示为:O(n+k)
大O表示法指令执行速度
快>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>慢
O(1) < O(logn) < O(n) < O(nlogn) < O(n^2) < O(n^3) < O(2^n) < O(n!) < O(n^n)
可以借助函数生成工具比较复杂度大小
https://zh.numberempire.com/graphingcalculator.php

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在Python中,可以使用大O表示法Big O notation)来描述算法的时间复杂度或空间复杂度。大O表示法用于衡量算法的效率和性能,指的是随着输入规模增加,算法的运行时间或空间占用的增长情况。 大O表示法的常见表示方式有: 1. O(1):常数时间复杂度。无论输入的规模如何增加,算法的执行时间都不会有明显变化。例如,访问数组中的特定元素。 2. O(log n):对数时间复杂度。随着输入规模的增加,算法的执行时间呈对数级增长。例如,二分查找算法。 3. O(n):线性时间复杂度。算法的执行时间与输入规模成正比。例如,遍历一个数组来查找特定元素。 4. O(n log n):线性对数时间复杂度。随着输入规模的增加,算法的执行时间略低于线性增长。例如,归并排序和快速排序算法。 5. O(n^2):平方时间复杂度。随着输入规模的增加,算法的执行时间呈平方级增长。例如,嵌套循环的排序算法。 通过使用大O表示法,我们可以对算法进行分类和比较,以便选择最合适的算法来解决特定的问题。在编写程序时,了解算法的时间复杂度可以帮助我们优化程序的性能,并提高执行效率。 总之,大O表示法是一种用于描述算法效率和性能的标记法,包括常数时间复杂度O(1)、对数时间复杂度O(log n)、线性时间复杂度O(n)、线性对数时间复杂度O(n log n)和平方时间复杂度O(n^2)等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值