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;
}
}
私が間違っている場合は、私に修正してください。
iが形成された再発である:
T(N)= 2T(N/2)+7
私はすべてのユニットが7費用加算補正ですか?
これで私を助けてください。ありがとう。
あなたは私の混乱をクリア。どうもありがとう。 –