排序类:
package quick; public class QuickSort { private int[] list; public QuickSort(int[] list) { this.list = list; } /** * 快速排序,当左右索引不满足交换条件时,应该不发生交换 * @param left * @param right */ public void sort(int left,int right) { int low = left; int high = right; int key = list[left]; while(low < high) { while(low < high && list[high] >= key) { high --; } list[low] = list[high]; //主要处理不满足交换条件 while(low < high && list[low] <= key) { low ++; } list[high] = list[low]; //主要处理不满足交换条件 list[low] = key; //主要处理不满足交换条件 sort(left,low - 1); //递归左边 sort(low + 1,right); //递归右边 } } public void print() { for(int i=0;i<list.length;i++) { System.out.print(" " +list[i]); } } }测试类: package quick; public class MainClass { /** * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub int[] list = {-9,8,1,2,5,4,7,6,3,9}; QuickSort qs = new QuickSort(list); qs.sort( 0, list.length-1); qs.print(); } }