快速排序

int getposition(int arr[],int left,int right)
{
int tmp=arr[left];
while(left<right)
{
while(left<right&&arr[right]>=tmp) right--;
arr[left]=arr[right];
while(left<right&&arr[left]<tmp) left++;
arr[right]=arr[left];
}
arr[left]=tmp;
return left;
}
void myqsort(int arr[],int left,int right)
{
if(left<right)
{
int mid=getposition(arr,left,right);
myqsort(arr,left,mid-1);
myqsort(arr,mid+1,right);
}
}

最好:nlogn,最坏n*2,平均nlogn

原文地址:https://www.cnblogs.com/wuxiangli/p/5635681.html