#include <iostream>
using namespace std;
void swap(int k[],int l,int r){
int temp=k[l];
k[l]=k[r];
k[r]=temp;
}
int partition(int k[],int low,int high)
{
int point=k[low];
while(low<high)
{
while(low<high&&k[high]>=point){
high--;
}
swap(k,low,high);//不能直接k[low]=k[high]结果会出错
while(low<high&&k[low]<=point){low++;}
swap(k,low,high);
}
return low;
}
void Quick(int k[],int low,int high)
{
int point;
if(low<high)
{
point =partition(k,low,high);
Quick(k,low,point-1);
Quick(k,point+1,high);
}
}
void Quicksort(int k[],int n){
Quick(k,0,n-1);
}
int main()
{
int arr[7]={3,6,9,2,1,5,4};
Quicksort(arr,7);
printf("排后的顺序是:\n");
for(int i=0;i<7;i++){
printf("%d",arr[i]);
}
return 0;
}