快速排序-Java實現
阿新 • • 發佈:2019-01-30
快速排序採用分治法:
如下圖所示:
public class QuickSort { public static void quickSort(int[] a, int low, int high) { if (low > high){ return; } int start = low; int end = high; int key = a[low]; while (low < high){ while (low <high && a[high] > key){ high--; } while (low < high && a[low] <= key){ low++; } if(a[low] > a[high]){ int temp = a[low]; a[low] = a[high]; a[high] = temp; } } if(low == high){ a[start] = a[high]; a[high] = key; } if(low > start){ quickSort(a,start,low-1); } if(end > low){ quickSort(a,low+1,end); } public static void main(String[] args) { int[] a = {3, 2, 5, 1, 4, 9, 6, 8, 8, 0, 1}; System.out.print("排序前:"); for (int i : a) { System.out.print(i); } System.out.println(); quickSort(a,0,a.length-1); System.out.print("排序後:"); for (int i : a) { System.out.print(i); } System.out.println(); } }