#类型
-
O(1):常数复杂度
-
O(log n):对数复杂度
-
O(n):线性时间复杂度
-
O(n^2):平方
-
O(n^3):立方
-
O(2^n):指数
-
O(n!):阶乘
#注意
只看最高复杂度的运算
#例子
-
O(1)
let n = 1000; console.log(n);
-
O(1)
let n = 1000; console.log(n); console.log(n); console.log(n);
-
O(n)
for(let i = 1;i <= n;i++){ console.log(i); }
-
O(n^2)
for(let i = 1;i <= n;i++){ for(let j = 1;j <= n;j++){ console.log(i+" & "+j); } }
-
O(log(n))
for(let i = 1;i < n;i=i*2){ console.log(i); }
-
O(k^n)
for(let i = 1;i <= Math.pow(2,n);i++){ console.log(i); }
-
O(n!)
for(let i = 1;i <= factorial(n);i++){ console.log(i); }
#图例
下图表示的是,时间复杂度随着n的不断扩大,而扩大。一个优秀的程序员应该,时刻关注自己代码的质量。