/*
* 快速排序
* 分治法和递归
*
* 要背的滚瓜烂熟,代码要背的滚瓜烂熟,多多积累大量代码
* */
package day7yue20;
public class QuikSort {
public static void main(String[] args) {
int arr[] = { 100, 2, 5, 1, 87, 34 };
quickSort(arr, 0, arr.length - 1);
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}
}
public static void quickSort(int[] arr, int low, int high) {
if (low > high) {
return;
}
int i, j, temp, t;
i = low;
j = high;
temp = arr[low];
while (i < j) {
while (arr[j] >= temp && i < j) {
j--;
}
while (arr[i] <= temp && i < j) {
i++;
}
if (i < j) {
t = arr[j];
arr[j] = arr[i];
arr[i] = t;
}
}
arr[low] = arr[i];
arr[i] = temp;
// 开始递归这个函数
quickSort(arr, low, j - 1);
quickSort(arr, j + 1, high);
}
}