下面就举几个常见的时间复杂度
- 常数阶O(1)
通俗地来讲,就是没有循环等复杂结构
int i=0;
int j=2;
i++;
j++;
int m=i+j;
- 对数阶O(log2n)
在while循环里面,每次都将 i 乘以 2,乘完之后,i 距离 n 就越来越近了。假设循环x次之后,i 就大于 2 了,此时这个循环就退出了,也就是说 2 的 x 次方等于 n,那么 x = log2n也就是说当循环 log2n 次以后,这个代码就结束了
int i=1;
while (i<n){
i=i*2;
}
- 线性阶O(n)
int j=0;
for(int i=0;i<n;i++){
j++;
}
- 线性对数阶O(nlogN)
这可以看成是对数阶和常数阶的嵌套
for(int m=0;m<n;m++){
int i =1;
while (i<n){
i=i*2;
}
}