#include<iostream>
#define N 10
using namespace std;
int Partition(int a[],int l,int r){
int left=l,right=r;
int key=a[l]; //基准
while(left<right){
while(left<right&&a[right]>=key)
--right;
a[left]=a[right];//移动基准
while(left<right&&a[left]<=key)
++left;
a[right]=a[left];//移动基准
}
a[left]=key;//找到基准的位置
return left;//返回位置
}
void QuickSort(int a[],int l,int r){
if(l<r){
int mid=Partition(a,l,r);//找基准位置
QuickSort(a,l,mid-1); //对左半段排序
QuickSort(a,mid+1,r); //对右半段排序
}
}
printf(int a[],int l,int r){
for(int i=l;i<=r;i++){
cout<<a[i]<<"\t";
}
}
int main(){
int a[N]={0,9,9,7,6,5,3,2,1,1};
QuickSort(a,0,N-1);
printf(a,0,N-1);
return 0;
}
11-03
12万+
08-23
6986
02-02
7781
06-13