参考:
时间复杂度
常见的时间复杂度
- 常数阶O(1)
- 对数阶O(logN)
- 线性阶O(n)
- 线性对数阶O(nlogN)
- 平方阶O(n²)
- 立方阶O(n³)
- K次方阶O(n^k)
- 指数阶(2^n)
常数阶O(1)
int i = 1;int j = 2;++i;j++;int m = i + j;
线性阶O(n)
for(i=1; i<=n; ++i){j = i;j++;}
对数阶O(logN)
int i = 1;while(i<n){i = i * 2;}
i 乘以 2 的 n 次方 小于 n,属于对数函数
线性对数阶O(nlogN)
对数函数 加一个 循环
for(m=1; m<n; m++){i = 1;while(i<n){i = i * 2;}}
平方阶O(n²)
两个循环
for(x=1; i<=n; x++){for(i=1; i<=n; i++){j = i;j++;}}
空间复杂度
空间复杂度 O(1)
int i = 1;int j = 2;++i;j++;int m = i + j;
空间复杂度 O(n)
第一行,决定了 空间 随 n变化情况。
int[] m = new int[n]for(i=1; i<=n; ++i){j = i;j++;}
