public class MergeSortNormal {
public static void main(String[] args) {
int [] arr = new int[]{2,3,45,7,9,6,2,89};//测试样例
int[] res = new MergeSortNormal().mergeSort(arr, 0, arr.length-1);
for(int m:res){
System.out.println(m);}
}
int[] merge(int[] n1, int[] n2){
int length = n1.length + n2.length;
int[] res = new int[length];
int i = 0, j =0,k=0;
while(i < n1.length&& j < n2.length){
if(n1[i] <= n2[j]){
res[k] = n1[i];
k++;
i++;
}
else{
res[k] = n2[j];
k++;
j++;
}
}
while(i < n1.length){
res[k] = n1[i];
k++;
i++;
}
while(j < n2.length){
res[k] = n2[j];
k++;
j++;
}
return res;
}
int[] mergeSort(int[] nums, int l, int r){
if(r==l)return new int[]{nums[l]};
int mid = (l+r)/2;
int[] temp1 = mergeSort(nums, l, mid);
int[] temp2 = mergeSort(nums, mid+1, r);
int[] res = merge(temp1, temp2);
return res;
}
}
归并排序
最新推荐文章于 2024-08-12 19:32:44 发布