算法的运行时间T(n)

时间:2013-09-19 17:57:48

标签: algorithm

我已经分析了以下alogirthm的运行时间我分析了θ但是它的运行时间可能是大O?

                               Cost             Time
1.  for i ←1 to n                c1             n   
2.      do for j ← i to n        c2             n
3.          do k ← k+ j          c3             n-1
T(n) = c1n +c2n+c3(n-1)
     = C1n+C2n+C3(n-1)
     = n(C1+C2)+n-1
     = n+n-1
Or T(n) = Ө(n)
So running time is Ө(n)

2 个答案:

答案 0 :(得分:2)

1.  for i ←1 to n                c1             n   
2.      do for j ← i to n        c2             n
3.          do k ← k+ j          c3             1

T(n) = n * n * 1 = O(n^2) @Giulio Franco

这是一个嵌套循环,在那里进行恒定时间操作。

do k ← k+ j是常量,因为无论您输入什么输入,操作都是固定的时间长度。 k + j

loop(n)
   loop(n)
       constant time(1)

当它是循环内的循环时,你会成倍增加。 n*n*1

loop(n)

loop(n)

这些循环不是嵌套的。

这将是n + n

O(n+n)缩小为O(n)

答案 1 :(得分:2)

您的循环将继续如下(众所周知的算术progression公式):

enter image description here

- 也可以估计为enter image description here,因为big-O给出了多数估计。