参考:
时间复杂度
常见的时间复杂度
- 常数阶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++;
}