时间复杂度和空间复杂度
参考博客:
算法的时间与空间复杂度(一看就懂)
时间复杂度和空间复杂度
算法时间复杂度T(n)大小顺序
时间复杂度 T(n) = O(F(n))
算法时间复杂度T(n)大小顺序->:
常阶数 | 对数阶 | 线性阶 | 平方阶 | 立方阶 |
---|---|---|---|---|
T(1) | T(log2n) | T(n) | T(n^2) | T(n^2) |
个人简概:一行代码执行了多少次
1.T(1)
没有循环等复杂结构, 消耗的时间并不随着某个变量的增长而增长
i++
j++
2.T(n)
for循环里面的代码会执行n遍,因此它消耗的时间是随着n的变化而变化的
for(i=1; i<=n; ++i)
{
j = i;
j++;
}
3.T(log2n)
循环x次之后,i 就大于 n 了,此时这个循环就退出了,也就是说 2 的 x 次方等于 n,那么 x = log2^n
int i = 1;
while(i<n)
{
i = i * 2;
}
空间复杂度S(n) = O(f(n))
个人简概:一个变量被定义了多少次
1.O(n)
for(int i=0;i<n;++){
int temp = i;
}
2.O(1)
int temp=0;
for(int i=0;i<n;i++){
temp = i;
}
巴拉巴拉巴拉…小魔仙变身