package cn.java.array;
import java.util.Arrays;
public class MyMergeSort {
public static void MergeSort(int[] num,int start,int end){
if(start<end){
int middle=(start+end)/2;
MergeSort(num,start,middle);
MergeSort(num,middle+1,end);
Merge(num,start,middle,end);
}
}
private static void Merge(int[] num, int start, int middle, int end) {
int[] newNum=new int[num.length];
int i=start; //i:start~middle
int j=middle+1; //j:middle+1~end
int index=start;
while(i<=middle&&j<=end){
if(num[i]<num[j]){
newNum[index++]=num[i++];
}else{
newNum[index++]=num[j++];
}
}
while(i<=middle){
newNum[index++]=num[i++];
}
while(j<=end){
newNum[index++]=num[j++];
}
/*for(int m=0;m<newNum.length;m++){
num[start+m]=newNum[m];
}*/
while(start<=end){
num[start]=newNum[start++];
}
}
/**
* @param args
*/
public static void main(String[] args) {
int[] num = { 2, 7, 8, 3, 1, 6, 9, 0, 5, 4 };
MergeSort(num, 0, num.length-1);
System.out.println(Arrays.toString(num));
}
}
java实现归并排序
最新推荐文章于 2024-03-08 21:38:01 发布