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的主要内容,如果未能解决你的问题,请参考以下文章
poj 2299 Ultra-QuickSort 逆序对模版题
java Heapsort实现和一些基准代码。 mergesort或quicksort的实现速度相当慢..