1、快速排序,时间复杂度O(nlogn)
///a为数组名,n为数组长度
void Quicksort(int *a,int left,int right)
{
if(left>=right)
return;
int first=left;
int last=right;
int key=a[first];
while(first<last)
{
while(first<last && a[last]=>key)
{
last--;
}
a[first]=a[last];
while(first<last && a[first]<=key)
{
first++;
}
a[last]=a[first];
}
a[first]=key;///first左边都比a[first]小;右边都比a[first]大
Quicksort(a,left,first-1);///对左边进行递归
Quicksort(a,first+1,right);///对右边进行递归
}