时间复杂度(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 < 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)
评论区