千家信息网

Java中怎么实现归并排序

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,Java中怎么实现归并排序 ,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。public class MergeSort { sta
千家信息网最后更新 2025年01月23日Java中怎么实现归并排序

Java中怎么实现归并排序 ,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

public class MergeSort {    static int number=0;    public static void main(String[] args) {        int[] a = {26, 5, 98, 108, 28, 99, 100, 56, 34, 1 };        printArray("排序前:",a);        MergeSort(a);        printArray("排序后:",a);    }    private static void printArray(String pre,int[] a) {        System.out.print(pre+"\n");        for(int i=0;i=right)            return;        int mid = (left + right) / 2;        //二路归并排序里面有两个Sort,多路归并排序里面写多个Sort就可以了        Sort(a, left, mid);        Sort(a, mid + 1, right);        merge(a, left, mid, right);    }    private static void merge(int[] a, int left, int mid, int right) {        int[] tmp = new int[a.length];        int r1 = mid + 1;        int tIndex = left;        int cIndex=left;        // 逐个归并        while(left <=mid && r1 <= right) {            if (a[left] <= a[r1])                tmp[tIndex++] = a[left++];            else                tmp[tIndex++] = a[r1++];        }        // 将左边剩余的归并        while (left <=mid) {            tmp[tIndex++] = a[left++];        }        // 将右边剩余的归并        while ( r1 <= right ) {            tmp[tIndex++] = a[r1++];        }        System.out.println("第"+(++number)+"趟排序:\t");        // TODO Auto-generated method stub        //从临时数组拷贝到原数组        while(cIndex<=right){            a[cIndex]=tmp[cIndex];            //输出中间归并排序结果            System.out.print(a[cIndex]+"\t");            cIndex++;        }        System.out.println();    }}

看完上述内容,你们掌握Java中怎么实现归并排序 的方法了吗?如果还想学到更多技能或想了解更多相关内容,欢迎关注行业资讯频道,感谢各位的阅读!

0