原理图
算法原理:输入需要排序的数组,按顺序输入左右两端的下标,以最左边下标的值为基准点,即a[0]的值,先从左边开始选择第一个小于基准点的j值,然后将j元素值赋值给基准点,再从右边开始选择第一个大于基准点的i元素值,将i元素值赋值给j元素,如此类推直至i >= j跳出循环,并将基准点的值赋值给最后的下标为i的元素,然后根据基准点下标分为两个数组,再次分别排序,直至整个数组排序完成。
public static void QuickSort(int[]array, int left, int right)
{
if(left<right){
int i = left,j = right;
int pivot = array[i];
while(i<j){
while(i<j&&array[j]<pivot){j--;}
array[i] = array[j];
while(i<j&&array[j]<pivot){i++;}
array[j] = array[i];
}
array[i] = pivot;
QuickSort(int[]array,left,i-1)
QuickSort(int[]array,i+1,right)
}
求助:
有没有人告诉我Donnet怎么走下去好啊。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。