两个有序整型数组a和b,假设a数组长度足够容纳b数组,将b数组合并到a数组,并保证a数组有序。
设m为数组a中元素个数,n为数组b中元素个数;
基本思想:从尾部开始遍历两个数组,并比较大小,将较大者放到数组a的(m+n-1)位置处。
public static void MergeTwoSortedArray(int[] a, int[] b, int m, int n) { int len = m + n - 1; int i=m-1, j=n-1; while (i >= 0 && j >= 0) { if (a[i] > b[j]) { a[len--] = a[i--]; } else { a[len--] = b[j--]; } } while (i >= 0) { a[len--] = a[i--]; } while (j >= 0) { a[len--] = b[j--]; } for (int k = 0; k <= m+n-1; k++) { Console.Write("{0,5}", a[k]); } }