时间复杂度主要衡量的是一个算法的运行速度,在计算机科学中,算法的时间复杂度其实是一个函数,它定量描述了算法的运行时间。一个算法执行所耗费的时间。是能算出粗略的值,只有程序放在机器上跑起来才能知道,但是我们不需要每个算法都上机测试,所以才有了时间复杂度这个分析方式。一个算法所花费的时间与其中语句的执行次数成正比,算法中的基本操作的执行次数,为算法的时间复杂度
大小关系:O(1)<O(log2n)<O(n)<O(nlog2n)<O(n^2)<O(n^3)<…<O(2^n)<O(n!)
O(1):
int a = 1, b = 3, c = 3;
O(log2n):
int i = 1;
while(i<=n)
{
i*=2
}
O(n):
int sum = 0;
for(int i = 0; i < n; i++)
{
sum+=i;
}
O(nlog2n):
for(int m=1;m<n;m++)
{
i=1;
while(i<n)
{
i=i*2;
}
}
O(n^2):
int num1, num2;
for(int i=0; i<n; i++)
{
num1 += 1;
for(int j=1; j<=n; j++)
{
num2 += j;
}
}
O(n^3):
int num1, num2, num3;
for(int i=0; i<n; i++)
{
num1 += 1;
for(int j=1; j<=n; j++)
{
num2 += j;
for(int k=1; k<=n; k++)
{
num3 += k;
}
}
}
O(2^n):
2^n = 2*2*2*........2* // 有n个2
O(n!):
n! = 1*2*3*4*5......*n;
时间复杂度
最新推荐文章于 2023-07-24 10:47:15 发布