话不多说,直接梭哈。
package com.neo.sort;
import com.sun.scenario.effect.Merge;
import java.util.Arrays;
public class MergeSort {
public static void main(String[] args) {
int[] arr={1,3,5,3,4};
int[] sort = sort(arr);
print(sort);
}
private static int[] sort(int[] arr){
int len=arr.length;
if (len<2){
return arr;
}
int middle=len/2;
int[] left= Arrays.copyOfRange(arr,0,middle);
int[] right=Arrays.copyOfRange(arr,middle,len);
return merge(sort(left),sort(right));
}
private static int[] merge(int[] left, int[] right) {
int[] result=new int[left.length+right.length];
int i=0;
int j=0;
while (left.length>i && right.length>j){
if (left[i]<=right[j]){
result[i+j]=left[i];
i++;
}else{
result[i+j]=right[j];
j++;
}
}
while (left.length==i && right.length>j){
result[i+j]=right[j];
j++;
}
while (right.length==j && left.length>i){
result[i+j]=left[i];
i++;
}
return result;
}
private static void print(int[] a){
for (int b:a
) {
System.out.println(b);
}
}
}