快速排序的代码

package introductionToAlgorithms;

 

public class QuickSort {

 

static int[] a = {3,1,7,4,10,6,8,9,2,5};

static int findPivot(int low,int high) {

int i = low, j = high+1;

int pivotValue = a[low];

while( true ) {

while( a[--j] > pivotValue );

System.out.println(" j = " + j);

while( i < j && a[++i] < pivotValue ); 

System.out.println(" i = " + i);

 

if( i >= j ) break;

int temp = a[i]; 

a[i] = a[j];

a[j] = temp;

}

a[low] = a[j];

a[j] = pivotValue;

return j;

}

static void quickSort(int low, int high){

if( low < high ) {

int pivot = findPivot(low,high);

quickSort(low,pivot-1);

quickSort(pivot+1,high);

}

}

 

static void printArray() {

for(int value: a)

System.out.print(value + "  ");

System.out.println();

}

 

public static void main(String[] args) {

 

printArray();

quickSort(0,a.length-1);

printArray();

}

}


你可能感兴趣的:(J#)