快排應該是平時使用的最多的一種排序了,這裏實現的快排是一種未經改良的簡單快排。java
快排的思想是,使用二分法找到一箇中間基準值,而後將序列分紅小於和大於兩部分,對這兩部分再分別進行快排。ui
public class QuickSort { int[] queue = new int[]{5,3,15,0,1,29,14,4,3,2,0}; public void quickSortTest(){ print(); quickSort(0,queue.length-1); print(); } public void print(){ int length = queue.length; int index; for(index=0;index<length;index++){ System.out.print(queue[index]+" "); } System.out.println(); } public void quickSort(int left,int right){ if(left<right){ int pivotpos = Partition(left,right); quickSort(left,pivotpos-1); quickSort(pivotpos+1,right); } } public int Partition(int low,int high){ int pivotpos = low;int pivot = queue[low]; int i; for(i=low+1;i<=high;i++) if(queue[i]<pivot){ pivotpos++; if(pivotpos!=i){swap(pivotpos,i);} } queue[low]=queue[pivotpos];queue[pivotpos]=pivot; return pivotpos; } public void swap(int i,int j){ int temp = queue[i]; queue[i] = queue[j]; queue[j] = temp; } public static void main(String[] args) { // TODO Auto-generated method stub QuickSort qs = new QuickSort(); qs.quickSortTest(); } }