試編寫(xiě)算法,將數(shù)組 int A[n]中的所有奇數(shù)移到所有偶數(shù)之前,要求時(shí)間復(fù)雜度為 O(n)。
這是南京大學(xué)2001的研改編題
/// 其他人的題目,未作考究。
const int N = sizeof(A);
int foreward =0, backward =N-1;
while(foreward < backward)
{
??? if (A[foreward] % 2)?//odd
??????? ++foreward;
??? else
??? {
??????? if ( !(A[backward] % 2) ) //even
??????????? --backward;
??????? else
??????? {
??????????? int temp = A[foreward];
??????????? A[foreward] = A[backward];
??????????? A[backward] = temp;
??????????? ++foreward;
??????????? --backward;
??????? }
??? }
}
//mode: C++