Java實現快速排序(分治法)
阿新 • • 發佈:2018-12-31
<span style="font-size:18px;">package com.alibaba; public class QuickSortTest { public static void quickSort(int[] arrays, int p, int r) { if (p < r) { int q = partition(arrays, p, r); quickSort(arrays, p, q - 1); quickSort(arrays, q + 1, r); } } public static int partition(int[] arrays, int p, int r) { int key = arrays[r]; int i = p - 1; for (int j = p; j < r; j++) { if (arrays[j] <= key) { i++; int tmp = arrays[j]; arrays[j] = arrays[i]; arrays[i] = tmp; } } int tmp = arrays[i + 1]; arrays[i + 1] = arrays[r]; arrays[r] = tmp; return i + 1; } public static void main(String[] args) { int[] arrays = { 1, 7, 23, 14, 16, 3, 6, 9, 12, 21, 13, 15, 8, 9, 23, 14, 11, 25, 15 }; quickSort(arrays, 0, arrays.length - 1); for (int num : arrays) { System.out.print(num + " "); } } } </span>