这样为什么会被卡死循环啊
查看原帖
这样为什么会被卡死循环啊
802675
Whoping楼主2022/12/27 16:31
#include<iostream>

using namespace std;
int a[100010];
int n;
void qsort(int l, int r) {
	if (l >= r)return;
	int i = l, j = r;
	int mid = a[l + r >> 1];
	while (i != j) {		
		while (a[i] < mid)i++;
		while (a[j] > mid)j--;
		if (i < j)swap(a[i], a[j]);
		if (a[i] == a[j] && i < j)i++;
	}
	qsort(l, j - 1), qsort(j + 1, r);
}
int main() {
	cin >> n;
	for (int i = 0; i < n; i++) {
		cin >> a[i];
	}
	qsort(0, n - 1);
	for (int i = 0; i < n; i++) {
		cout << a[i] << " ";
	}
	return 0;
}
2022/12/27 16:31
加载中...