#include<stdio.h>
void quitSort(int a[],int left,int right){
int i=left,j=right;//定义一个左指和右值
int temp=a[i];//首先得到a[i]的值
if(i<j){//只有当i比j小的时候才进入下面的循环
while(i!=j){//当左指和右指相同时退出循环
while(j>i&&temp<=a[j]){
j--;//右指--
}
if(i<j){
a[i++]=a[j];//将比temp小的值放到当前空位上,左指加1
}
while(i<j&&temp>=a[i]){
i++;//左指++
}
if(i<j){
a[j--]=a[i];//填补之前右边的空位
}
}
a[i]=temp;//最后将temp填入最后的空位
quitSort(a,left,i-1);//左值继续快排
quitSort(a,i+1,right);//右值继续快排
}
}
int main(){
int b=20;//定义存放的元素的最大值
int a[1005];//定义数组
int i=0;//计数器
while(b--){
a[i++]=rand()%100;//0-100
}
b=i;//恢复b的值
i=0;//再次初始化i的值
quitSort(a,0,20);
while(b--){
printf("%d ",a[i++]);//打印输出
}
return 0;
}