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

Merge Sort

时间:2017-05-31 10:32:07      阅读:222      评论:0      收藏:0      [点我收藏+]

标签:private   mergesort   logs   tin   bsp   for   star   log   start   

public class Solution {
    /**
     * @param A an integer array
     * @return void
     */
    public void sortIntegers2(int[] A) {
        // Write your code here
        if (A == null || A.length == 0) {
            return;
        }
        int[] tmp = new int[A.length];
        mergeSort(A, 0, A.length - 1, tmp);
    }
    
    private void mergeSort(int[] A, int start, int end, int[] tmp){
        if (start >= end) {
            return;
        }
        int mid = start + (end - start) / 2;
        
        mergeSort(A, start, mid, tmp);
        mergeSort(A, mid + 1, end, tmp);
        merge(A, start, mid, end, tmp);
    }
    
    private void merge(int[] A, int start, int mid, int end, int[] tmp) {
        int left = start;
        int right = mid + 1;
        int index = start;
        while (left <= mid && right <= end) {
            if (A[left] < A[right]) {
                tmp[index++] = A[left++];
            } else {
                tmp[index++] = A[right++];
            }
        }
        
        while (left <= mid) {
            tmp[index++] = A[left++];
        }
        
        while (right <= end) {
            tmp[index++] = A[right++];
        }
        
        for (int i = start; i <= end; i++) {
            A[i] = tmp[i];
        }
    }
}

 

Merge Sort

标签:private   mergesort   logs   tin   bsp   for   star   log   start   

原文地址:http://www.cnblogs.com/codingEskimo/p/6922409.html

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