1.Big O notation
- O(1): 常数复杂度
- O(log n): 对数复杂度
- O(n): 线型时间复杂度
- O(n^2): 平方
- O(n^3):立方
- O(2^n) :指数
- O(n!):阶乘
注意:只看最高复杂度的运算
2.复杂度代码示例
O(1)
int n = 1000;
System.out.println(n)
O(n)
for (int i=1; i<=n; i++) {
System.out.println(i)
}
O(n^2)
for (int i=1; i<=n; i++) {
for (int j=1; i<= n; j++){
System.out.println(i,j)
}
}
O(log(n))
for (int i=1; i<=n; i = i*2) {
System.out.println(i)
}
O(k^n)
for (int i=1; i<=Math.pow(k,n); i++) {
System.out.println(i)
}
Math.pow(k,n),返回以k为底的n次方数
O(n!)
for(int i=1; i <= factorial(n); i++) {
...
}