快速排序思想是選擇一箇中軸(基礎值),選擇一個結束值,而後從結束值往前遍歷,若發現有比基礎值小,則中止遍歷,記錄當前下標;接着從起始值向前遍歷,若發現有比基礎值大,則中止遍歷,記錄下標,而後交換剛剛取得兩個下標對應的值;最後繼續遍歷,直到起始遍歷下標大於等於結束遍歷下標.最後將當前起始下標的值和中軸的值交換.這就是一趟快速排序,而後比較左邊已經比較好的比中軸值小的隊列,右邊同理.ui
public static void quickSort(int[] sort, int low, int high) {
int i,j,base,temp;
if(low > high) {
return;
}
i = low;
j = high;
base = sort[low];
while(i < j) {
while(i < j && base <= sort[j]) {
j--;
}
while(i < j && base >= sort[i]) {
i++;
}
if(i < j) {
temp = sort[j];
sort[j] = sort[i];
sort[i] = temp;
}
}
sort[low] = sort[i];
sort[i] = base;
for(int ii = 0; ii <= sort.length - 1 ; ii++) {
System.out.print(sort[ii] + " ");
}
System.out.println("========================");
quickSort(sort, low, j-1);
quickSort(sort, j+1, high);
}排序