我必須逐行計算算法的時間複雜度或理論運行時間(假定爲psuedocode)T(n)。我試了一下,但有幾件事讓我感到困惑。例如,「if」語句的時間複雜度是多少?我該如何處理嵌套循環?代碼如下,以及我評論的嘗試。算法的運行時間計算/複雜度
長度[A] = N
for i = 0 to length[A] - 1 // n - 1
k = i + 1 // n - 2
for j = 1 + 2 to length[A] // (n - 1)(n - 3)
if A[k] > A[j] // 1(n - 1)(n - 3)
k = j // 1(n - 1)(n - 3)
if k != i + 1 // 1(n - 1)
temp = A[i + 1] // 1(n - 1)
A[i + 1] = A[k] // 1(n - 1)
A[k] = temp // 1(n - 1)
我得到了'O(n^2)'。您的'if'語句可以忽略,因爲它不會改變循環的流程。你的內循環不依賴於外循環,所以它們爲給定的'n'運行'(n - a)*(n - b)= n^2 + ...'次。 – Blender
我的歉意。我將來不會使用該標籤。 – aclark