#include <iostream>
using namespace std;
void quick_sort(int array[],int length);
void _quick_sort(int array[],int start,int end);
int get_middle(int array[],int start,int end);
void quick_sort(int array[],int length)
{
if(NULL==array || 0==length)
return;
_quick_sort(array,0,length-1);
}
void _quick_sort(int array[],int start,int end)
{
int middle;
if(start >= end)
return;
middle=get_middle(array,start,end);
_quick_sort(array,start,middle-1);
_quick_sort(array,middle,end);
}
int get_middle(int array[],int start,int end)
{
int key = array[end];
int i=start-1;
for(int j=start; j<end; ++j)
{
if(array[j] <= key)
{
i++;
swap(array[i],array[j]);
}
}
swap(array[i+1],array[end]);
return(i+1);
}
void swap(int a,int b){int temp=a;a=b;b=temp;}
void main()
{
int array[] = {1,56,6,38,12,456,32,444};
quick_sort(array, sizeof(array)/sizeof(int));
for(int i=0;i<sizeof(array)/sizeof(int);i++)
{
cout<<array[i]<<" ";
}
system("pause");
}
快排
最新推荐文章于 2022-03-05 14:56:15 发布