#include <vector>

#include <iostream>

#include <string>

using namespace std;



//交换两个元素

void exchange(int *a,int *b)

{

int temp=*a;

*a=*b;

*b=temp;

}

//以low为划分元

int sort(int *arr,int low,int high)

{

int temp=arr[high];

int i=low-1;

for(int j=low;j<high;j++)

{

if(arr[j]<temp)

{

i++;

exchange(&arr[j],&arr[i]);


}

}

exchange(&arr[i+1],&arr[high]);

return i+1;




}

//采用分治法调用

void quicksort(int *arr,int low,int high)

{

if(low<high)

{

int i=sort(arr,low,high);

quicksort(arr,low,i-1);

quicksort(arr,i+1,high);

}


}

int main()

{



int test[10]={21,30,5,6,11,45,20,10,9,12};

quicksort(test,0,9);



for(int i=0;i<10;i++)

{

cout<<test[i]<<" ";

}

return 0;

}