思想:
分治思想,将原问题分解为若干个规模更小但结构与原问题相似的子问题。递归地解这些子问题,然后将这些子问题的解组合为原问题的解。
代码实现:
/**
* @author zhang-jian
* @date 2019/03/23
*/
public class QuickSort {
public static void main(String[] args) {
int[] arr = new int[]{10, 6, 55, 2, 5, 88, 3};
quickSort(arr, 0, arr.length - 1);
for (int a:arr) {
System.out.println(a);
}
}
public static void quickSort(int[] arr, int low, int high) {
if(low >= high){
return;
}
int i = low;
int j = high;
int temp = arr[i];
while (i != j) {
while (i < j && arr[j] >= temp) {
j--;
}
arr[i] = arr[j];
while (i < j && arr[i] <= temp) {
i++;
}
arr[j] = arr[i];
}
arr[i] = temp;
quickSort(arr, low, i - 1);
quickSort(arr, i+1, high);
}
}