快速排序
package sort; public class QuickSort { public static void quickSort(int[] arr,int low,int high){ int i,j,temp,t; if(low>high){ return; } i=low; j=high; //temp就是基准位 temp = arr[low]; //开始循环 while (i<j) { //先看右边,依次往左递减,基准位置右边的应该都比基准位置大,当不满足条件的时候是比基准位小的记录下来 while (temp<=arr[j]&&i<j) { j--; } //再看左边,依次往右递增,基准位左边的应该比基准位都小,当不满足条件的时候是比基准位大的记录下来 while (temp>=arr[i]&&i<j) { i++; } //进行交换 if (i<j) { t = arr[j]; arr[j] = arr[i]; arr[i] = t; } } //将基准位换到i和j相等的位置,将这个位置放在基准位 arr[low] = arr[i]; arr[i] = temp; //递归调用左半数组,进行同上的步骤 quickSort(arr, low, j-1); //递归调用右半数组,进行同上的步骤 quickSort(arr, j+1, high); } public static void main(String[] args){ int[] arr = {10,7,2,4,7,62,3,4,2,1,8,9,19}; quickSort(arr, 0, arr.length-1); for (int i = 0; i < arr.length; i++) { System.out.println(arr[i]); } } }