关于快速排序的问题,下面是我的代码,我找不出问题在哪里,而且还没有输出,请帮忙指点指点,感激不尽
沛公 2011-08-27 12:39:18 /**
* 快速排序
*/
public class QuickSort {
public void quickSort(int[] arr){
qSort(arr, 0, arr.length - 1);
}
private void qSort(int[] arr, int low, int high) {
if(low < high){// 长度大于1
int pivot = partition(arr, low, high);//一分为二 ,pivot为枢纽位置
qSort(arr, low, pivot - 1);//对前一段递归排序
qSort(arr, pivot, high);//对后一段递归排序
}
}
private int partition(int[] arr, int low, int high) {
int i = low, j = high ;
int pivot = arr[low];
while(i < j){
while(arr[j]>=pivot)
j--;
swap(arr, arr[i], arr[j]);
while(arr[i]<=pivot)
i++;
swap(arr, arr[i], arr[j]);
}
return i;
}
//交换
private static void swap(int[] arr, int i, int j){
int temp = j;
j = i;
i = temp;
}
public static void main(String[] args) {
QuickSort qs = new QuickSort();
int[] arr = {4, 6, 2, 8, 1};
qs.quickSort(arr);
for(int temp : arr){
System.out.print(" " + temp);
}
}
}