您的位置:首页 > 其它

今日算法 两个升序的数组进行排序

2018-03-02 18:00 260 查看
需要注意的是是否去重
思想是定义两个指针
都从0开始比较  小的指针向后移动一位 只要小于就移动
进入第二个if 给一个大于的条件
最后剩下的进行添加
如果不想去重 在算法过程中 要add两次  这儿用了一个List  用String 也可以 性能差一点//2个有序数组hebng
public static List<Integer> sort(int[] a,int[] b){
List<Integer> c=new ArrayList<Integer>();
int aIndex=0;
int bIndex=0;
while (true){
if (aIndex>a.length-1||bIndex>b.length-1){
break;
}
if(a[aIndex]<b[bIndex]){
c.add(a[aIndex]);
aIndex++;
}else if(a[aIndex]>b[bIndex]){
c.add(b[bIndex]);
bIndex++;
}else {
c.add(a[aIndex]);
aIndex++;
bIndex++;
}
}
// 将没有超出数组下标的数组其余全部加到数组c中
// 如果a数组还有数字没有处理
if(aIndex<=a.length-1){
for(int i=aIndex;i<=a.length-1;i++){
c.add(a[i]);
}
}else if(bIndex<=b.length-1){
for(int i=bIndex;i<=b.length-1;i++){
c.add(b[i]);
}
}
return c;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐