QuickSort

作者: 墨平语凡 | 来源:发表于2017-11-10 15:38 被阅读0次
public class QuickSort {
    public void sort(Comparable[] a) {
        sort(a, 0, a.length - 1);
    }

    private void sort(Comparable[] a, int lo, int hi) {
        if (hi <= lo) return;
        int j = partition(a, lo, hi);
        sort(a, lo, j - 1);
        sort(a, j + 1, hi);
    }

    private int partition(Comparable[] a, int lo, int hi) {
        int i = lo, j = hi + 1;
        Comparable v = a[lo];
        while (true) {
            while (less(a[++i], v)) if (i == hi) break;
            while (less(v, a[--j])) if (j == lo) break;
            if (i >= j) break;
            exch(a, i, j);
        }
        exch(a, lo, j);
        return j;
    }

    private boolean less(Comparable v, Comparable w) {
        return v.compareTo(w) < 0;
    }

    private void exch(Comparable[] a, int i, int j) {
        Comparable t = a[i];
        a[i] = a[j];
        a[j] = t;
    }
}

相关文章

  • java快速排序

    public class QuickSort { public static void quickSort(int...

  • 3.1.0 快速排序

    quicksort

  • Quicksort

    worst-case running time of n2 on an input array of n numb...

  • QuickSort

  • QuickSort

    思想:以第一个为参照元素,分别从第二个和最后一个逐一和参照元素比较,小的留在左边low区域,大的留在右边high区...

  • QuickSort

    快排没啥好讲的,主要是看到剑指offer上说求第K大个数,能达到时间O(N),表示不理解。同时,以下代码中part...

  • QuickSort

  • Quicksort

    Quicksort是一个分而治之的算法,它根据主元把一个大数组分成2个小数组:其中1个数组的元素要比主元小,另一个...

  • 九. Sort 1 mergesort and quicksor

    Comparing the mergesort and quicksort, the mergesort nee...

  • QuickSort in swift

网友评论

      本文标题:QuickSort

      本文链接:https://www.haomeiwen.com/subject/cnibmxtx.html