#include <stdio.h>
#include <string.h>
#define maxn 10101
int s[maxn];
void exchange(int *m, int *n){
int temp;
if(*m > *n){
temp = *m;
*m = *n;
*n = temp;
}
}
int getIndex(int left, int right){
int i = left, j = right;
while(i < j){
while(i < j && s[i] <= s[j])
j--;
if(i < j){
exchange(&s[i], &s[j]);
i++;
}
while(i < j && s[i] <= s[j])
i++;
if(i < j){
exchange(&s[i], &s[j]);
j--;
}
}
return i;
}
void qsort(int left, int right){
if(left < right){
int index = getIndex(left, right);
qsort(left, index-1);
qsort(index+1, right);
}
}
int main(){
int i, n, left, right;
while(scanf("%d", &n) == 1){
for(i = 0; i < n; i++){
scanf("%d", &s[i]);
}
qsort(0, n-1);
for(i = 0; i < n; i++){
printf("%d ", s[i]);
}
printf("\n");
}
return 0;
}
自己写的快速排序
最新推荐文章于 2024-04-06 19:03:21 发布