美文网首页
JAVA分治合并排序(MERGE-SORT)

JAVA分治合并排序(MERGE-SORT)

作者: 龙儿筝 | 来源:发表于2017-03-28 15:09 被阅读78次
/**
 * 分治算法.
 */
public class MergeSort {

    private MergeSort() {
        throw new RuntimeException();
    }

    public static void sort(int[] array) {
        if (null == array||array.length<2) {
            return;
        }
        sort(0, array.length, array);
    }

    private static void sort(int start, int length, int[] array) {
        if (length > 2) {
            int middle = (int) Math.floor(length / 2);
            sort(start, middle, array);
            sort(start + middle, length - middle, array);
            merge(start, middle, start + middle, length - middle, array);
        } else if (length == 2) {
            if (array[start+1]<array[start]){
                array[start+1] = array[start+1]^array[start];
                array[start] = array[start]^array[start+1];
                array[start+1] = array[start+1]^array[start];
            }
        }
    }

    private static void merge(int aStart, int aLength, int bStart, int bLength, int[] array) {
        int aSize = aStart + aLength;
        int bSize = bStart + bLength;
        while (aStart < aSize && bStart < bSize) {
            int a = array[aStart];
            int b = array[bStart];
            if (b<a){
                System.arraycopy(array, aStart, array, aStart + 1, bStart - aStart);
                array[aStart] = b;
                aStart++;
                bStart++;
                aSize++;
            }else {
                aStart++;
            }
        }
    }
}

相关文章

  • JAVA分治合并排序(MERGE-SORT)

  • 每天一点算法-归并排序(Day12)

    介绍 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-...

  • 归并排序

    归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-con...

  • 数据结构--归并排序与基数排序

    一、归并排序归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-a...

  • 基本算法——归并排序算法

    归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(分治法将问题分(d...

  • 归并排序算法

    1、概念 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-an...

  • 转-归并排序

    基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-an...

  • 归并排序

    基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-an...

  • 排序4-归并排序

    基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法。 该算法采用经典的分治(divide-a...

  • 归并排序(swift、oc双语实现)

    基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-an...

网友评论

      本文标题:JAVA分治合并排序(MERGE-SORT)

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