时间复杂度(1)

时间复杂度 :也叫渐进时间复杂度,表示的是时间与数据规模的增长关系

$Tn = O(f(n))$

Tn表示的是时间,n的增长表示数据增长的规模

举个例子

#include<stdio.h>
   int main() {
   int x = 5;
   int y = 8;
   printf("%d\\n",x + y); 
   return 0;
}

此刻的时间复杂度就是O(1),只有三行代码需要时间,跟n无关,按照大O时间复杂度就是这样了

如果是这种情况

#include<stdio.h>
int main() {
   int x = 5;
   int y = 8;
   int n;
   for (int i = 0; i < n; i++)
   {
       x += i; 
   }
   printf("%d\\n",x + y); 
   return 0;
}

时间复杂度就是 O(n),不管是2n ,3n,3n+y统统算O(n),n的规模一大,其他的常数是可以忽略不计的

其中要注意的是 O(x) + O(y) = max(O(x)) , O(x) + O(y) = O(x*y)

举咧子

#include<stdio.h>
int main() {
   int x = 5;
   int y = 8;
   int n;
   for (int i = 0; i < x; i++)
   {
       n += i; 
   }
<pre><code>for (int i = 0; i &lt; y; i++)
{
   n += i; 
}

printf("%d\n",x + y); return 0; }

这种情况是 O(x) + O(y) = max(O(x)) 也就是 O(n)

空间复杂度 :也叫渐进空间复杂度,表示的是空间与数据规模的增长关系

一般在数组等容器中体现,大家可以类比一下

int a[] = new int[n]

空间复杂度是 O(n)