**
快排方法
public static void quick(int[] arr, int begin, int end) { //begin為數組最左側腳标
//end為數組arr的長度
if (begin >= end) { //遞歸結束條件
return;
}
int key = arr[begin]; // 取最左邊的值為key值
int keyIndex = begin; // 作用就是用于儲存最終的key值的位置
for (int i = begin + 1; i < end; i++) {
if (arr[i] < key) { // 如果i位置的值比key值小
keyIndex++;
int tmp = arr[i];
arr[i] = arr[keyIndex]; // 騰位置, 儲存比key值小的值
arr[keyIndex] = tmp; // 交換keyIndex和i位置的值
}
}
// 交換開始位置和keyIndex位置
arr[begin] = arr[keyIndex];
arr[keyIndex] = key; // key值歸位, 左子列和右子列出來
// 左子列
quick(arr, begin, keyIndex); // 左子列 遞歸
quick(arr, keyIndex + 1, end); // 右子列 遞歸
}