算法 第四版 归并排序

来源:互联网 发布:刷机精灵mac版 编辑:程序博客网 时间:2024/06/15 23:58
/** * Created by lxw, liwei4939@126.com on 2017/9/24. */public class Merge {    private static Comparable[] aux;    public static void sort(Comparable[] a){        aux=new Comparable[a.length];        sort(a, 0, a.length-1);    }    private static void sort(Comparable[] a, int lo, int hi){        if(hi<=lo)            return;        int mid= lo +(hi-lo)/2;        sort(a,lo, mid);        sort(a,mid+1, hi);        merge(a,lo,mid,hi);    }    public static void merge(Comparable[] a, int lo, int mid, int hi){        int i=lo, j=mid+1;        for(int k=0;k<=hi; k++)            aux[k] = a[k];        for(int k=lo, k<=hi; k++){            if(i>mid)                a[k] = aux[j++];            else if(j>hi)                a[k]= aux[i++];            else if(less(aux[j], aux[i]))                a[k] = aux[j++];            else                 a[k] = aux[i++];        }    }}

原创粉丝点击