package order;
import java.util.Arrays;
public class Quick2 {
//参数:数组,数组第一个元素下标,最后一个元素下标
public static void quickSort(int [] array,int startIndex,int endIndex){
if (startIndex>=endIndex){
return;
}
int pivotIndex=partition(array,startIndex,endIndex);
//左边
quickSort(array,startIndex,pivotIndex-1);
//右边
quickSort(array,pivotIndex+1,endIndex);
}
public static int partition(int [] array,int startIndex,int endIndex){
//
int pivot=array[startIndex];
int mark=startIndex;
for (int i=startIndex+1;i<=endIndex;i++)
{
if (array[i]<pivot){
mark++;
int p=array[mark];
array[mark]=array[i];
array[i]=p;
}
}
array[startIndex]=array[mark];
array[mark]=pivot;
return mark;
}
public static void main(String[] args) {
int[] arr=new int[]{12,2,5,6,9,45,1};
quickSort(arr,0, arr.length-1);
System.out.println(Arrays.toString(arr));
}
}