#include <bits/stdc++.h>
using namespace std;
#define int long long
const int N = 1e5 + 5;
int n;
int a[N];
void quick_sort(int l, int r) {
if (l >= r) return;
int mid = a[(l + r) >> 1];
int i = l - 1, j = r + 1;
while (i < j) {
do i++; while (a[i] < mid);
do j--; while (a[j] > mid);
if (i < j) swap(a[i], a[j]);
}
quick_sort(l, j), quick_sort(j + 1, r);
}
signed main() {
scanf("%lld", &n);
for (int i = 1; i <= n; i++) scanf("%lld", &a[i]);
quick_sort(1, n);
for (int i = 1; i <= n; i++) printf("%lld ", a[i]);
printf("\n");
return 0;
}
为什么这个代码把 quick_sort(l, j), quick_sort(j + 1, r); 换成 quick_sort(l, i), quick_sort(i + 1, r);就不行了呢?