Java 归并排序(MergeSort)算法实现

来源:互联网 发布:平板刷机软件 编辑:程序博客网 时间:2024/05/10 17:35

Java 归并排序(MergeSort)算法实现

public class MergeSort {    public static void merge(int [] A,int p,int q,int r){        //复制数组        int n = r-p+1;        int [] R = A.clone();        int i = p;        int j = q+1;        int k = p;        //如果两个数组B 和 C中都有数据则选择更小的加入到A中并获取下一个        while(i<=q&&j<=n-1){            if(R[i]<=R[j]){                A[k]=R[i];                i++;            }else{                A[k]=R[j];                j++;            }            k++;        }        while(i<=q) A[k++] = R[i++];        while(j<n-1) A[k++] = R[j++];    }    public static void mergeSort(int [] arr,int p, int r){        if(p < r){            int q = (p+r)/2;            mergeSort(arr,p,q);            mergeSort(arr,q+1,r);            merge(arr,p,q,r);        }    }    public static void main(String [] args){        int [] arr = {1,0,2,5,3,4};        mergeSort(arr,0,4);        for(int i:arr){            System.out.println(i);        }    }}

merge算法
http://blog.csdn.net/baidu_22502417/article/details/46638047

0 0
原创粉丝点击