快速排序
快速排序主要要理解他里面关于基准的概念。
pivot从左向右走,每次都把所指的位置的正确位置找到。
void QuickSort(int arr[],int low,int high)
{
if(low>=high)return;
//停止条件:说明已经排完了
int pivot=qsort(arr,low,high);
QuickSort(arr,low,pivot-1);
QuickSort(arr,pivor+1,high);
}
int qsort(int arr[],int low,int high)
{
int i=low,int j=high;
int key=arr[i];
while(i<j){
while(i<j&&(arr[j]>key))j--;
if(i<j){
arr[i]=arr[j];
i++;
}
while(i<j&&(arr[i]<key))i++;
if(i<j){
arr[j]=arr[i];
j--;
}
}
arr[i]=key;
return i;
}