排序算法-归并排序

来源:互联网 发布:门面模式 java 编辑:程序博客网 时间:2024/06/17 01:25

归并排序,从字面上意思就可以得知它是分治法的一种,将两个已经排好的数组进行归并到一个数组,直接贴代码吧,这样比较清晰

public static void mergearrayv1(int a[], int first, int mid, int last, int temp[]) {        int i = first, j = mid + 1;        int m = mid, n = last;        int k = 0;        while (i <= m && j <= n) {            if (a[i] <= a[j])                temp[k++] = a[i++];            else                temp[k++] = a[j++];        }        while (i <= m)            temp[k++] = a[i++];        while (j <= n)            temp[k++] = a[j++];        for (i = 0; i < k; i++)            a[first + i] = temp[i];    }    public static void mergeAlgorithm(int[] a, int first, int last, int[] temp) {        if (first < last) {            int mid = (first + last) / 2;            mergeAlgorithm(a, first, mid, temp);//left sort            mergeAlgorithm(a, mid + 1, last, temp);//right sort            mergearrayv1(a,first,mid,last,temp);        }    }


0 0
原创粉丝点击