归并排序模板(Java)

Posted INnoVation-V2

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了归并排序模板(Java)相关的知识,希望对你有一定的参考价值。

import java.util.Scanner;
import java.io.BufferedInputStream;
class Main{
    static int N = (int) 1e5 + 10,len;
    static int[] q = new int[N],temp = new int[N];
    static void mergeSort(int[] q,int l,int r){
        if(l>=r) return;
        int mid=(l+r)>>1;
        mergeSort(q,l,mid);
        mergeSort(q,mid+1,r);
        int k=0,i=l,j=mid+1;
        while(i<=mid&&j<=r)
            if(q[i]<q[j])temp[k++]=q[i++];
            else temp[k++]=q[j++];
        while(i<=mid) temp[k++]=q[i++];
        while(j<=r)temp[k++]=q[j++];
        for(k=0,i=l;i<=r;++i,++k)
            q[i]=temp[k];
    }

    public static void main(String[] args){
        Scanner sc=new Scanner(new BufferedInputStream(System.in));
        len=sc.nextInt();
        for(int x=0;x<len;++x)
            q[x]=sc.nextInt();
        mergeSort(q,0,len-1);
        for(int x:q)
            System.out.print(x+" ");
    }
}

以上是关于归并排序模板(Java)的主要内容,如果未能解决你的问题,请参考以下文章

归并排序模板(ACwing 787)

PAT:归并排序与快速排序模板

Java 归并排序算法

Java 归并排序算法

归并排序模板

归并排序模板