首先时间复杂度排序是这样的
Tn = 3n + 3 ====== O(n)去掉常数和系数
Tn是不是常数,如果是常数,那么时间复杂度是O(1)
一个for(i ++ )的循环,时间复杂度是O(n),无论,i加的是几
Tn= x * n,这种情况下,x作为时间常数是要被去掉的,所以时间复杂度是o(n)
一个for循环涉及到for( i *= 2)这种情况下
就是O(log2N)
一个for循环外面一个 i *= 2,里面一个i += 2,或者反过来的,就是O(nlogn)
空间复杂度
为了避免内存超出限制,这也需要我们对算法占用多大的内存有一个大体的预估。
这就用到了算法空间复杂度的分析。
我们来看一下例子
那么先来看看什么时候的空间复杂度是O(1)
看以下代码:
int j = 0;
for (int