public class lianxi {
public static int partition(int[] array, int arrStart, int arrEnd, int pivoPos) {
int ItpivotValueCount = 0;
int temp;
int pivotValue = array[pivoPos];
temp= array[pivoPos];
array[pivoPos]=array[arrEnd-1];
array[arrEnd-1]=temp;
for (int i = arrStart; i < arrEnd-1; ++i) {
if (array[i]<pivotValue){
temp=array[arrStart+ItpivotValueCount];
array[arrStart+ItpivotValueCount]=array[i];
array[i]=temp;
++ItpivotValueCount;
}
}
temp=array[arrEnd-1];
array[arrEnd-1]=array[arrStart+ItpivotValueCount];
array[arrStart+ItpivotValueCount]=temp;
pivotValue=array[arrStart+ItpivotValueCount];
return ItpivotValueCount+arrStart;
}
static int findPivotPos(int[] array, int arrStart, int arrEnd) {
return arrStart;
}
public static boolean quickSort(int[] array, int arrStart, int arrEnd) {
if (arrEnd - arrStart < 2) {
return false;
}
int pivotPos = findPivotPos(array, arrStart, arrEnd);
int partition = partition(array, arrStart, arrEnd, pivotPos);
quickSort(array, arrStart, partition);
quickSort(array,partition+1,arrEnd);
return true;
}
public static void main (String[]args){
int[] array={3,1,4,1,5,9,2,6,5,3,5};
int partition = partition(array, 0, array.length, 2);
quickSort(array,0,array.length);
for (int i = 0; i < array.length; i++) {
System.out.print(array[i]+" ");
}
}
}