#includeusing namespace std; const int N = 100; int q[N]; int n; void quick_sort(int q[], int l, int r) { //递归的终止情况,一定要注意边界问题 if (l >= r) return; //第一步:分成子问题 int i = l - 1, j = r + 1, x = q[l + r >> 1]; while (i < j) { do i++; while (q[i] < x); do j--; while (q[j] > x); if (i < j) swap(q[i], q[j]); } //第二步:递归处理子问题 quick_sort(q, l, j); quick_sort(q, j + 1, r); //第三步:子问题合并.快排这一步不需要操作 } int main() { scanf_s("%d", &n); for (int i = 0; i < n; i++) scanf_s("%d", &q[i]); quick_sort(q, 0, n - 1); for (int i = 0; i < n; i++) { printf_s("%dt", q[i]); } }
看明白之后,点个赞,嘿嘿!!



