#include<stdio.h>
void QuickSort(int s[],int l,int r);
int AdjustArray(int s[],int l,int r);
int main() {
int i,n,s[100];
printf("快速排序:\n");
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&s[i]);
}
QuickSort(s,0,n-1);
printf("排序结果:\n");
for(i=0;i<n;i++){
printf("%d ",s[i]);
}
printf("\n");
return 0;
}
void QuickSort(int s[],int l,int r) {
int i;
if(l<r){
i=AdjustArray(s,l,r);
QuickSort(s,l,i-1);
QuickSort(s,i+1,r);
}
}
int AdjustArray(int s[],int l,int r){
int i=l,j=r;
int x=s[l];
while(i<j){
while(i<j&&s[j]>=x){
j--;
}
if(i<j){
s[i]=s[j];
i++;
}
while(i<j&&s[i]<x){
i++;
}
if(i<j){
s[j]=s[i];
j--;
}
}
s[i]=x;
return i;
}
void QuickSort(int s[],int l,int r);
int AdjustArray(int s[],int l,int r);
int main() {
int i,n,s[100];
printf("快速排序:\n");
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d",&s[i]);
}
QuickSort(s,0,n-1);
printf("排序结果:\n");
for(i=0;i<n;i++){
printf("%d ",s[i]);
}
printf("\n");
return 0;
}
void QuickSort(int s[],int l,int r) {
int i;
if(l<r){
i=AdjustArray(s,l,r);
QuickSort(s,l,i-1);
QuickSort(s,i+1,r);
}
}
int AdjustArray(int s[],int l,int r){
int i=l,j=r;
int x=s[l];
while(i<j){
while(i<j&&s[j]>=x){
j--;
}
if(i<j){
s[i]=s[j];
i++;
}
while(i<j&&s[i]<x){
i++;
}
if(i<j){
s[j]=s[i];
j--;
}
}
s[i]=x;
return i;
}