JohnWang的专栏

平常心面对无常事

算法系统学习-1排序-归并排序
import java.util.*;
 
public class MergeSort {
    public int[] mergeSort(int[] A, int n) {
         mergesort(A,0,n-1);
        return A;
    }
    public void mergesort(int[] A,int low,int high)
    {
        if(low<high)
        {
         int mid =(low+high)/2;
         mergesort(A,low,mid);
         mergesort(A,mid+1,high);
         merge(A,low,mid,high);
        }
    }
    public void merge(int[] A,int low,int mid,int high)
    {
      int [] tmp =new int[A.length];
      int m=low;
      int n=mid+1;
      int k=low;
        while(m<=mid&&n<=high)
        {
            if(A[m]<A[n])
            {
              tmp[k++]=A[m++];  
            }
            else
            {
                tmp[k++]=A[n++];
            }
             
        }
        while(m<=mid)
        {
          tmp[k++]=A[m++];  
        }
        while(n<=high)
        {
          tmp[k++]=A[n++];   
        }
        while(low<=high)
        {
          A[low]=tmp[low++]; 
        }
    }
}

阅读更多
个人分类: 算法系统学习
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

算法系统学习-1排序-归并排序

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭