最佳案例和最坏情况时间复杂性

时间:2016-10-01 10:03:24

标签: time-complexity complexity-theory

给出数组A的以下伪代码

x = 0
  for i = 0 to n - 2
    for j = i to n - 1
       if A[i] > A[j]:
          x = x + 1
  return x

最坏情况复杂度是O(n ^ 2)还是Theta(n ^ 2)?为什么?我似乎并不理解两者之间的区别。

至于最佳案例复杂性,它是否与最坏情况的复杂性不同,因为算法仍然必须通过相同的行?

1 个答案:

答案 0 :(得分:3)

此算法中的主导操作是比较A[i] > A[j]。这种比较总是完成n ^ 2次。

O(n ^ 2)意味着这是最坏情况的复杂性。如果你使用O表示法,你会说这种复杂性在最好的情况下会更好。

Theta(n ^ 2)表示这是所有个案的复杂性。

所以答案是:复杂性是Theta(n ^ 2),因为在最佳和最差情况下它都是n ^ 2.

请参阅:Big-Theta notationBig-O notation