并归排序 (Java版本,时间复杂度为O(n))

自己上网查了一下并归排序的定义,把两个排序好的数组重新组成一个排序好的数组就是并归排序,

实现的方式有和多种,自己思考了一下,用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

上一篇:如何理解Latency和Throughput: 吞吐量和延迟


下一篇:MySQL迁移方案(后续再补充)