QuickSort

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QuickSort相关的知识,希望对你有一定的参考价值。

递归版:

 1 public static void quickSort(Object[] array) {
 2     quickSort(array, 0, array.length - 1);
 3 }
 4 
 5 private static void quickSort(Object[] array, int left, int right) {
 6     if (right > left) {
 7         Object pivot = array[left];
 8         int ptr = partition(array, pivot, left, right);
 9         quickSort(array, left, ptr - 1);
10         quickSort(array, ptr + 1, right);
11     }
12 }
13 
14 @SuppressWarnings({ "unchecked", "rawtypes" })
15 private static int partition(Object[] array, Object pivot, int left, int right) {
16     int lp = left;
17     int rp = right + 1;
18     Comparable pt = (Comparable) pivot;
19     while (lp < rp) {
20         while (lp < right && pt.compareTo(array[++lp]) >= 0)
21             ;
22         while (rp > left && pt.compareTo(array[--rp]) <= 0)
23             ;
24         if (rp > lp)
25             swap(array, lp, rp);
26     }
27     swap(array, left, rp);
28 
29     return rp;
30 }

 

以上是关于QuickSort的主要内容,如果未能解决你的问题,请参考以下文章

快速排序 QuickSort

poj 2299 Ultra-QuickSort 逆序对模版题

java Heapsort实现和一些基准代码。 mergesort或quicksort的实现速度相当慢..

快速排序(QuickSort),归并排序(MergeSort),堆排序(HeapSort)典型C++代码实现总结

QuickSort

POJ2299 Ultra-QuickSort