快速排序算法
#include<iostream>
using namespace std;
int Partition(int r[],int first,int end)
{
int i=first,j=end;
while(i<j)
{
while(r[i]<=r[j]&&i<j) j--;
if(i<j){
int temp=r[i];
r[i]=r[j];
r[j]=temp;
}
while(r[i]<=r[j]&&i<j) i++;
if(i<j){
int temp=r[i];
r[i]=r[j];
r[j]=temp;
}
}
return i;
}
void QuickSort(int r[],int first,int end)
{
int pivot=Partition(r,first,end);
if(first<end){
QuickSort(r,first,pivot-1);
QuickSort(r,pivot+1,end);
}
}
int main()
{
int r[]={0,5,4,9,3,2,2,5,7,9,11,4,-2,-9,5,0,41,6};
int first=0,end=sizeof(r)/sizeof(int)-1;
QuickSort(r,first,end);
for(int i=0;i<sizeof(r)/sizeof(int);i++)
{
if(i!=0) cout<<" ";
cout<<r[i];
}
cout<<endl;
return 0;
}