extern int sort_quick(int arr[],int len)
{
sort_quick_result(arr,0,len-1);
return 0;
}
int sort_quick_result(int arr[],int low,int high)
{
if(low<high)
{
int n = sort_quick_patition(arr,low,high);
sort_quick_result(arr,low,n-1);
sort_quick_result(arr,n+1,high);
}
return 0;
}
int sort_quick_patition(int arr[],int low,int high)
{
int bi = arr[low];
while(low<high)
{
while(low<high && arr[high]>=bi)
{
--high;
}
swap(&arr[low],&arr[high]);
while(low<high && arr[low]<=bi)
{
++low;
}
swap(&arr[low],&arr[high]);
}
return low;
}
快排分为两步:
1、找一个标准,将数组分成两个部分
2、将两个部分别递归调用1步骤