快速排序

 

 

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

posted @ 2016-07-02 17:04  simple_wxl  阅读(156)  评论(0编辑  收藏  举报