了解具有嵌套循环的函数的理论运行时间

时间:2017-07-18 08:02:48

标签: time-complexity big-o

我一直在努力理解Big-O表示法。今天早些时候,我有一个练习的功能,并告诉它有一个O(n^5)。我已经尝试过自己计算,但不知道我是否正确计算了T(n)

以下是我的两个问题:

1)我是否正确计算T(n),如果没有,那么我做错了什么?

2)为什么我们只关注变量到最高功率?

1    sum = 0;                           //1                 =   1
2    for( i=0;  i < n;  i++)            //1 + n + 2(n-1)    =   1+n+2n-2            = 3n-1
3     for (j=0; j <  i*i;  j++)         //n + n*n + 2n(n-1))=   n+ n^2 + 2n^2-2n    = 3n^2 -n
4      for (k=0; k < j;  k++)           //n + n*n + 4n(n-1))=   n + n*n +4n*n-4n    = 5n^2 -3n
5           sum++;
6           k++; 
7       j++; 
8   i++;
// so now that I have simplified everything I multiplied the equations on lines 2-4 and added line 1
// T(n) = 1 + (3n-1)(3n^2-n)(5n^2 -3n) = 45n^5 -57n^4 +23n^3 -3n^2 + 1

1 个答案:

答案 0 :(得分:1)

Innermost循环运行j次。 第二个循环运行j = 0 to i^2 - &gt;整数之和。 外循环运行到n - &gt;平方和和整数的4次幂。

enter image description here

我们只获取最高权力,因为当n接近无穷大时,n(或秩序)的最高权力将始终占主导地位,而不论其系数如何。