快速排序
快速排序是原地排序算法,排序不稳定
import java.util.Arrays;
/**
* @author CC
* 快速排序算法
*/
public class QuickSort {
public static void main(String[] args) {
int[] arr = {10,7,2,5,9,88,6,3,1,8};
sort(arr, 0, arr.length-1);
System.out.println(Arrays.toString(arr));
}
public static void sort(int[] arr,int low,int high) {
if (low>high) {
return;
}
int i = low;
int j = high;
int temp = arr[low]; //基准位
while (i<j) {
while (temp <= arr[j]&&i<j) {//从右往左递减,找小的
j--;
}
while (temp >= arr[i]&&i<j) {//从左往右递增,找大的
i++;
}
if (i<j) {
int t = arr[j];
arr[j] = arr[i];
arr[i] = t;
}
}
//将基准位与i和j相等位置的数字互换
arr[low] = arr[i];
arr[i] = temp;
sort(arr, low, j-1);
sort(arr, j+1, high);
}
}