读书人

快速排序(QuickSort) Java兑现

发布时间: 2012-10-08 19:54:56 作者: rapoo

快速排序(QuickSort) Java实现

public class QuickSort {    /**     * 快排序     * @param data 待排序数组     * @param startIndex 开始排序元素的索引     * @param endIndex 结束排序元素的索引     */    public static void sort(Comparable[] data, int startIndex, int endIndex) {        if (startIndex < endIndex) {            int middleIndex = partition(data, startIndex, endIndex);            sort(data, startIndex, middleIndex - 1);            sort(data, middleIndex + 1, endIndex);        }    }    public static void sort(Comparable[] data) {        sort(data, 0, data.length - 1);    }    public static void sort(Comparable[] data, int startIndex) {        sort(data, startIndex, data.length - 1);    }    private static int partition(Comparable[] data, int startIndex, int endIndex) {        Comparable pivotElement = data[endIndex];        int i = startIndex - 1;        for (int j = startIndex; j < endIndex; j++) {            if (data[j].compareTo(pivotElement) < 0) {                swap(data, ++i, j);            }        }        swap(data, ++i, endIndex);        return i;    }    private static void swap(Comparable[] data, int i, int j) {        Comparable tmp = data[i];        data[i] = data[j];        data[j] = tmp;    }
1 楼 gggeee111000 2011-09-30 非常好,谢谢。 2 楼 hongjn 2011-09-30 gggeee111000 写道非常好,谢谢。
谢谢!

读书人网 >编程

热点推荐