当前位置:首页 > 开发 > 编程语言 > Java > 正文

快速排序(QuickSort) Java实现

发表于: 2011-09-29   作者:hongjn   来源:转载   浏览:
摘要: public class QuickSort { /** * 快排序 * @param data 待排序数组 * @param startIndex 开始排序元素的索引 * @param endIndex 结束排序元素的索引 */ public static void sort(Comparable[] dat
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;
    }

快速排序(QuickSort) Java实现

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号