需要注意的是是否去重
思想是定义两个指针
都从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; }