#include<iostream>
using namespace std;
int partion(int p,int r,int *a)
{
int i=p-1;
int x=a[r];
for(size_t j =p;j<=r-1;j++)
{
if(a[j]<=x)
{
i++;
int temp = a[j];
a[j] = a[i];
a[i] = temp;
}
}
int m = i+1;
int temp = a[m];
a[m] =a[r];
a[r] = temp;
return m;
}
void quicksort(int p,int r,int *a)
{
int x;
if(p<r)
{
x = partion(p,r,a);
quicksort(p,x-1,a);
quicksort(x+1,r,a);
}
}
void print_array(int a[] , int n)
{
for(int i = 0 ; i < n ; i++)
{
cout<<" "<< a[i];
}
cout<< " End"<<endl;
}
int main()
{
int a[11] = {0,10,9,8,7,6,5,4,3,2,1};
cout<<"before heapsort"<<endl;
print_array(a,11);
cout<<endl;
quicksort(0,10,a);;
cout<<"after heapsort"<<endl;
print_array(a,11);
return 0;
}
速度越来越快了,40分钟搞定快排,解释明天发