Time complexity 最佳情况和最坏情况的时间复杂度
给定数组A的以下伪代码Time complexity 最佳情况和最坏情况的时间复杂度,time-complexity,complexity-theory,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)还是θ(n^2),为什么?我似乎不明白两者之间的区别 至于最佳情况复杂度,它是否与最坏情况复杂度相同,因为该算法仍然必须运行相同的行?该算法中的主要操作是比较A[i]>A[j]。此比较总是进行n^2次 O(n^2)表示这是最坏情况
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)还是θ(n^2),为什么?我似乎不明白两者之间的区别
至于最佳情况复杂度,它是否与最坏情况复杂度相同,因为该算法仍然必须运行相同的行?该算法中的主要操作是比较
A[i]>A[j]
。此比较总是进行n^2次
O(n^2)表示这是最坏情况下的复杂性。若你们使用O符号,你们会说这种复杂性在最好的情况下会更好
θ(n^2)表示这是所有情况下的复杂性
所以答案是:复杂性是θ(n^2),因为在最好和最坏的情况下它都是n^2
参见:和此算法中的主要操作是比较
A[i]>A[j]
。此比较总是进行n^2次
O(n^2)表示这是最坏情况下的复杂性。若你们使用O符号,你们会说这种复杂性在最好的情况下会更好
θ(n^2)表示这是所有情况下的复杂性
所以答案是:复杂性是θ(n^2),因为在最好和最坏的情况下它都是n^2
请参阅:谢谢您的帮助!比较总是执行(n-1)*(n+2)/2次,当然是θ(n^2)。感谢您的帮助!比较总是执行(n-1)*(n+2)/2次,当然是θ(n^2)