標籤:
1 package sorting; 2 3 /** 4 * 快速排序 5 * 平均O(nlogn),最好O(nlogn),最壞O(n^2);空間複雜度O(nlogn);不穩定;較複雜 6 * @author zeng 7 * 8 */ 9 public class Kuaisupaixu {10 11 public static int sort(int[] a, int i, int j) {12 int key = a[i];13 while (i < j) {14 while (i < j && a[j] >= key)15 j--;16 a[i] = a[j];17 while (i < j && a[i] <= key)18 i++;19 a[j] = a[i];20 }21 a[i] = key;22 return i;23 }24 25 public static void quicksort(int[] b, int low, int high) {26 27 if (low < high) {28 int pivotloc = sort(b, low, high);29 System.out.println("pivotloc=" + pivotloc);30 for (int i : b)31 System.out.print(i + " ");32 System.out.println();33 quicksort(b, low, pivotloc - 1);34 quicksort(b, pivotloc + 1, high);35 }36 37 }38 39 public static void main(String[] args) {40 int[] b = { 49, 38, 65, 97, 76, 13, 27, 50 };41 quicksort(b, 0, b.length - 1);42 43 }44 }
排序演算法Java實現(快速排序)