这个算法的运行时间T(n)是多少?

时间:2017-02-02 09:56:37

标签: algorithm

  

程序的运行时间T(n)是多少   实现这个算法 - 什么是总时间?

     

T(n)≈copC(n)。

sum = 0;
for (i=1; i<=n; i++) 
    for (j=1; j<=i; j++)
        sum++;
for (k=0; k<n; k++) 
    A[k] = k;

3 个答案:

答案 0 :(得分:4)

嵌套循环

  for (i=1; i<=n; i++) 
    for (j=1; j<=i; j++)
      sum++;

带来

  n           - outer loop
  (n + 1) / 2 - inner loop

  n * (n + 1) / 2 == 0.5 * (n^2 + n) == O(n^2)

操作。您可以实现更好的O(n)例程:

  sum = n > 0 ? n * (n + 1) / 2 : 0;

  for (k = 0; k < n; k++) 
    A[k] = k;  

答案 1 :(得分:1)

您的指示时间为sum++; n(n+1)/2次,指示时间为A[k]=k; n次。

总数为T(n)=(n^2+3n)/2

答案 2 :(得分:1)

如果你想要精确分析,它将如下(我们需要从内到外):

enter image description here

其中c1,c2是常数。