0
我是新算法分析的東西。我剛剛寫了一個分而治之的算法,它應該在O(n)時間內從一個數組中找到一個最大數,並且我堅持要形成它的遞歸。計算形成算法遞歸關係的步驟
以下是我的算法。
int findMax(int *A, int S, int E){
if(S == E){ //1 unit of time
return A[S];
}
else if(S == (E-1)){ // 1 unit of time
if(A[S] > A[E]){ // 1 unit of time
return A[S];
}
else{
return A[E];
}
}
mid = (S+E)/2; // 1 unit of time
L = findMax(A, S, mid);
R = findMax(A, mid+1, E); // 1 unit of time
if(L > R){ // 1 unit of time
return L;
}
else if(R > L){ // 1 unit of time
return R;
}
}
如果我錯了,請讓我糾正。我形成
復發是:
T(N)= 2T(N/2)+7
我是正確加起來所有單位成本7?
請幫我解決這個問題。謝謝。
你清除我的困惑。非常感謝。 –