作者:西工大附中 8年级 文筠飞 指导老师:新曙光培训 刘霞
#include <stdio.h>
int b[1000] = { 0 };
void paixv(l, r)
int l, r; {
int k, i, j, y;
i = l;
j = r;
k = l;
while (i < j) {
if (b[i] > b[j]) {
if (k == i)
k = j;
else
k = i;
y = b[i];
b[i] = b[j];
b[j] = y;
}
if (k == i)
j--;
else
i++;
}
if (k - l > 1)
paixv(l, k - 1);
if (r - k > 1)
paixv(k + 1, r);
}
main() {
int n, i;
scanf("%d", &n);
for (i = 0; i <= n - 1; i++)
scanf("%d", &b[i]);
paixv(0, n - 1);
for (i = 0; i <= n - 1; i++)
printf("%d ", b[i]);
printf("\n");
}
另见:Java中的排序 http://188029.net/java/j12-06-16a.html