自己上网查了一下并归排序的定义,把两个排序好的数组重新组成一个排序好的数组就是并归排序,
实现的方式有和多种,自己思考了一下,用java实现了一版本,思路如下,既然是排序好的,只需要依次比较两个数组,把小的数据取出,小的下一个数据继续进行比较,如果某一个数组取完,去两一个数组里取值即可,代码如下
//并归排序,将两个排序好的数组组成一个新的排序好的数组,比较小的 取出值,然后用下一个继续比较,重复这个过程
@Test
public void test(){
int[] a = new int[]{1,5,7,8,10};
int[] b = new int[]{2,3,4,7,11,15,100,3000,40000,50000};
int[] c = new int[a.length+b.length];
//System.out.println(c.length);
int k=0;int j=0;
for(int i=0;i<c.length;i++){
if(k>a.length-1){
System.out.println(b[j]);
j++;
continue;
}
if(j>b.length-1){
System.out.println(a[k]);
k++;
continue;
}
if(a[k]<b[j]){
System.out.println(a[k]);
k++;
}else{
System.out.println(b[j]);
j++;
}
}
}
结果如下
1
2
3
4
5
7
7
8
10
11
15
100
3000
40000
50000