算法–Big O Nonation

O(1): Constant Complexity: Constant 常数复杂度
O(log n): Logarithmic Complexity: 对数复杂度
O(n): Linear Complexity: 线性时间复杂度
O(n^2): N square Complexity 平方
O(n^3): N square Complexity 立方
O(2^n): Exponential Growth 指数
O(n!): Factorial 阶乘

O(1) :指一次运算(常数型运算)
int n = 1000;
System.out.println(n);

O(log(n)): 如果n=10的话,那么需要运算四次
for (int i=1;i<=n;i=i*2){
System.out.println(i);
}
算法--Big O Nonation

O(n): 指n次运算
for (int i=1;i<=n;i++){
System.out.println(i);
}

O(k^n): 如果n=10的话,那么运算1024次
for (int i=1;i<=Math.pow(2,n);i++){
System.out.println(i);
}

O(n^2): 指n的2次方次运算,如果n=10的话,也就是要运算100次
for (int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
System.out.println(i+"+"+j);
}
}

O(n!): 如果i=10的话,那么需要运算 3628800次
for (int i=1;i<=factorial(n);i++){
System.out.println(i);
}

求1–100的和

一种方式是硬循环

算法--Big O Nonation
或者
int i=0;
int sum =0;
for(int i=0;i<=100;i++){
sum+=i;
}
System.out.println(sum);

一种是求和公式

int i=0;
i=100*(100+1)/2

这样就可以看到常规的和优化的都可以算出100的所有整数和是多少,但是第一种需要算100次,而第二种的话就只需要算1次。性能上不言而喻了。

递归算法

Fib算法是指数级的也就是2的n次方次运算。
其它的算法的效率对比
算法--Big O Nonation
以上是一点小的理论知识仅供参考。
平时练习时可以在leetCode上练习。

相关文章:

  • 2021-08-07
  • 2021-09-20
  • 2021-11-29
  • 2021-09-06
  • 2021-10-20
  • 2021-06-14
  • 2021-11-25
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2021-05-18
  • 2022-12-23
  • 2021-11-26
  • 2022-12-23
  • 2022-12-23
  • 2021-07-10
相关资源
相似解决方案