问题 4126 --快速排序(完善程序)

4126: 快速排序(完善程序)★★★

时间限制: 1 Sec  内存限制: 128 MB
提交: 1053  解决: 453
[提交][状态][命题人:]

题目描述

用快速排序方法对N<200000个整数从小到大排序。

#include <iostream>  
#define MAXN 200000
using namespace std;
int data[MAXN];
int n;

void sort(int l, int r) {
	int x = data[(l + r) / 2], i = l, j = r, temp;
	while (i <= j) {
		while (data[i] < x) i++;
		while (data[j] > x) j--;

		if (_____(1)_____) {
			temp = data[i];
			data[i] = data[j];
			data[j] = temp;
			i++;
			j--;
		}
	}
	if (i < r) sort(i, r);
	if (l < j) sort(___(2)____, _____(3)_____);
}

int main() {
	cin >> n;
	int i;
	for (i = 1; i <= n; i++) {
		scanf("%d",&data[i]);
	}
	sort(___(4)___,____(5)_____);
	for (i = 1; i <= n; i++)
		printf("%d\n",data[i]);
	return 0;
}


输入

输出

样例输入
Copy
10
4 85  3 234 45 345 345 122 30 12
样例输出
Copy
3
4
12
30
45
85
122
234
345
345

提示

来源

[提交][状态]