首页 > 编程语言 > 详细

[算法总结]partition (quicksort)

时间:2017-01-05 09:43:36      阅读:192      评论:0      收藏:0      [点我收藏+]
private int partition(int[] nums, int lo, int hi) {
        if (lo >= hi) {
            return lo;
        }
        int i = lo;
        int j = hi + 1;
        int v = nums[lo];
        while (true) {
            while (nums[++i] < v)
                if (i == hi) break;
            while (nums[--j] > v)
                if (j == lo) break;
            if (i >= j) {
                break;
            }
            int tmp = nums[i];
            nums[i] = nums[j];
            nums[j] = tmp;
        }
        nums[lo] = nums[j];
        nums[j] = v;
        return j;
    }

lo和hi都是inclusive的。 返回的数组中,index小于j的数都小于等于j,index大于j的数都大于等于j

[算法总结]partition (quicksort)

原文:http://www.cnblogs.com/Gryffin/p/6251064.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!