归并算法(Java——实例)

package org.example;

import java.util.Arrays;

public class Main {
    public static int [] sort(int[] arr,int left,int right){
        if(left==right){
            return new int []{arr[left]};
        }
        int mid = (left+right)/2;
        int [] leftarr = sort(arr,left,mid);
        int [] rightarr = sort(arr,mid+1,right);
        int [] newarr = new int [leftarr.length+rightarr.length];
        int m=0,i=0,j=0;
        while(i<leftarr.length && j<rightarr.length){
            newarr[m++]=leftarr[i]<=rightarr[j]?leftarr[i++]:rightarr[j++];
        }
        while(i<leftarr.length){
            newarr[m++]=leftarr[i++];
        }
        while(j<rightarr.length){
            newarr[m++]=rightarr[j++];
        }
        return newarr;
    }
    public static void main(String[] args) {
        System.out.println("1_1");
        int[] arr = {10,23,3,91,5,6,7,8,9};
        int[] newarr = sort(arr,0,arr.length-1);
        System.out.println("归并排序后的序列:"+ Arrays.toString(newarr));

    }
}