手写快排的基础思想就是先分后立,设置数组中的一个数为支点,针对这个支点,左边的数进行快排,右边也进行快排,依次递归。
实现源码如下:
int partision(int arr[],int left,int right){ int k=left,point = arr[right]; for(int i =left;i<right;i++) if(arr[i]<point){ swap(arr[i],arr[k++]); } swap(arr[k],arr[right]); return k; } void quicksort(int arr[],int left,int right){ if(left<right){ int point=partision(arr[],left,right); quicksort(arr,left,point-1); quicksort(arr,point+1,right); } }
浙公网安备 33010602011771号