【輸入形式】給定一組正整數(shù)序列(最多20個(gè)正整數(shù)序列),利用快速排序算法從小到大排序,輸出第一趟排序后的左子區(qū)間序列和右子區(qū)間序列,中間用’/‘分隔。如果左子區(qū)間序列或右子區(qū)間序列為空,則相應(yīng)的空序列用’-'表示。
【輸出形式】正整數(shù)序列,以空格分隔,回車結(jié)束。
【樣例輸入】左子區(qū)間序列 / 右子區(qū)間序列,數(shù)值之間以空格分隔,左右序列之間以’/‘分隔,空序列用’-'表示。
【樣例輸出】49 38 65 97 76 13 27 49
【樣例輸入】27 38 13/76 97 65 49
【樣例輸出】13 38 65 97 76 27 49
C++代碼-/38 65 97 76 27 49
#includeusing namespace std;
void Quicksortonce(int l, int r, int A[], int& flag) {int left = l, right = r, x = A[l];
while (left< right) {while (left< right && A[right] >= x) right--;
if (left< right) swap(A[left++], A[right]);
while (left< right && A[left]< x) left++;
if (left< right) swap(A[left], A[right--]);
}
flag = left;
}
int main() {int A[20], flag, cnt = 0;
while (cin >>A[cnt++]);
cnt--;
Quicksortonce(0, cnt - 1, A, flag);
for (int i = 0; i< cnt; i++) {if (i == flag) { if (i == 0) cout<< "-";
cout<< "/";
if (i == cnt - 1) cout<< "-";
}
else if (i + 1 == flag) cout<< A[i];
else cout<< A[i]<< " ";
}
return 0;
}
注:Cg系統(tǒng)第一組測試沒有錄入\n(回車),故要用此方法讀入,此方法在本地?zé)o效。
你是否還在尋找穩(wěn)定的海外服務(wù)器提供商?創(chuàng)新互聯(lián)www.cdcxhl.cn海外機(jī)房具備T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確流量調(diào)度確保服務(wù)器高可用性,企業(yè)級(jí)服務(wù)器適合批量采購,新人活動(dòng)首月15元起,快前往官網(wǎng)查看詳情吧