码迷,mamicode.com
首页 > 其他好文 > 详细

归并排序算法

时间:2014-06-06 07:26:53      阅读:273      评论:0      收藏:0      [点我收藏+]

标签:c   style   class   blog   code   java   

bubuko.com,布布扣
import static org.junit.Assert.*;

import java.util.Arrays;

import org.junit.Test;

public class SortAlgorithms {
/**
     * 归并排序算法
     * 
     * @param a
     * @return
     */
    static void mergeSort(int[] a, int start, int end) {
        if (start < end - 1) {
            int mid = (start + end) / 2;
            mergeSort(a, start, mid);
            mergeSort(a, mid, end);
            merge(a, start, mid, end);
        }
    }

    /**
     * 归并排序中将两个已经排序的序列合并
     * 
     * @param a
     * @param b
     * @return
     */
    protected static void merge(int[] n, int start, int mid, int end) {
        int[] l = Arrays.copyOfRange(n, start, mid);
        int[] r = Arrays.copyOfRange(n, mid, end);
        int i = 0;
        int j = 0;// j<mid-start
        int k = 0;// k<end-mid
        while (i < end - start) {
            if (j < mid - start & k < end - mid) {
                if (l[j] < r[k]) {
                    n[i + start] = l[j];
                    j++;
                } else {
                    n[i + start] = r[k];
                    k++;
                }
            } else if (k < end - mid) {
                n[i + start] = r[k];
                k++;
            } else if (j < mid - start) {
                n[i + start] = l[j];
                j++;
            }
            i++;
        }
    }

}
bubuko.com,布布扣

归并排序算法,布布扣,bubuko.com

归并排序算法

标签:c   style   class   blog   code   java   

原文地址:http://www.cnblogs.com/xiaojintao/p/3767624.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!