将两个有序数组,合并成另一个有序的数组,升序

基本思想:

1)  先在a、b数组中各取第一个元素进行比较,将小的元素放入c数组;

2)取小的元素所在数组的下一个元素与另一数组中上次比较后较大的元素比较,重复上述比较过程,直到某个数组被先排完;

3)将另一个数组剩余元素写入c数组,合并排序完成

public static void main(String[] args) {
   int[] a = {1, 3, 5, 7, 9};
   int[] b = {2, 4, 6, 8, 10};
   int[] c = new int[10];

   int ai = 0, bi = 0, ci = 0;
   while (ai < a.length && bi < b.length) {
      if (a[ai] < b[bi]) {
         c[ci] = a[ai];
         ai++;
      } else {
         c[ci] = b[bi];
         bi++;
      }

      ci++;
   }
   while (ai < a.length) {
      c[ci] = a[ai];
      ai++;
      ci++;
   }
   while (bi < b.length) {
      c[ci] = b[bi];
      bi++;
      ci++;
   }
   for (int i = 0; i < c.length; i++) {
      System.out.println(c[i]);
   }
}

你可能感兴趣的:(算法)