1
欲計算以下遞歸算法,其中,計算遞歸算法T(n)的時間複雜度= T(K)+ T(NK)
n = j - i (size of array)
i ≤ k ≤ j
process(A, i, j) takes Θ(n) time
Algo(Array A[], int i, int j)
if (i<j)
k = process(A, i, j)
Algo(A, i, k)
Algo(A, k+1, j)
我想出了的時間複雜度以下內容:
T(n) = Θ(n) + T(k) + T(n-k)
我不確定這是否正確,如果是這樣,如何繼續?
更新:
是以下是否正確?
對於k的最壞情況值是i或j,
T(n) = Θ(n) + T(0) + T(n)
這應該發佈在https://cs.stackexchange.com/ – Adrian
這應該採用'O(nlogn)',它看起來類似於合併排序中的合併排序 – Oswald
@Oswald,k = n/2,但是這裏可以是我和j之間的任何數字。這會影響解決方案嗎? – SachiDangalla