这里主要是为了给自己记录一下实现快排的基本流程和思路。
package SortTest; public class QuickSort { /** * 递归 * 以获取的游标为分界,继续往下分 * @param array * @param low * @param high */ public static void Sort(int[] array,int low,int high) { if(low<high) { int piovt=getPiovt(array,low,high); Sort(array,low,piovt-1); Sort(array,piovt+1,high); } } /** * 获得游标 * @param array * @param low * @param high * @return */ private static int getPiovt(int[] array,int low,int high) { int piovt=array[low]; while(low<high) { while(low<high&&piovt<=array[high]) { high--; } swap(array,low,high); while(low<high&&piovt>=array[low]) { low++; } swap(array,low,high); } return low; } /** * 交换 * @param array * @param i * @param j */ private static void swap(int[] array,int i,int j) { int temp=array[i]; array[i]=array[j]; array[j]=temp; } public static void main(String[] args) { // TODO Auto-generated method stub int array[]= {31,78,29,10,10,96,65,12,46}; Sort(array,0,array.length-1); for (int i = 0; i < array.length; i++) { System.out.print(array[i]+" "); } } }