/**
* Created by zhouzhuo on 2018/1/22.
* 题目:有两个有序数组a,b,现需要将其合并成一个新的有序数组
*
*
* 简单的思路就是先放到一个新的数组中,在排序。但是这样没有体现任何算法,这里考的不是快速排序等排序算法。关键是如何利用有序
* 这个已知条件。可以这样想,假设两个源数组的长度不一样,那么假设其中短的数组用完了,即全部放入到新数组中去了,那么长数组中剩下的那一段
* 就可以直接拿来放到新数组中去了*/
public class SortTwoArray {
public int[] sort(int[] a,int[] b){
int[] c = new int[a.length+b.length];
int i=0,j=0,k = 0;
while (i<a.length&&j<b.length){
if(a[i]>=b[j]){
c[k++] = b[j++];
}else {
c[k++] = a[i++];
}
}
while (j<b.length){
c[k++] = b[j++];
}
while (i<a.length){
c[k++] = a[i++];
}
return c;
}
}
网友评论