算法思想:每次从数组A或者数组B中取一个元素放入合并后的数组。
假设:两个数组都是从小到大排列的。
C#实现:
/// <summary> /// 合并两个有序数组,数组都是从小到大排列的,合并后的数组也是从小到大排列 /// </summary> /// <param name="a">数组</param> /// <param name="b">数组</param> /// <returns>合并后的数组</returns> private int[] mergeArray(int[] a,int[] b) { int[] c = new int[a.Length+b.Length];//合并后的数组 int a_num = 0; //记录当前从a中取的元素的位置 int b_num = 0; //记录当前从b中取的元素的位置 for (int i = 0; i < c.Length;i++ ) { //以下代码从a数组或者b数组中取元素 if(a_num<a.Length && b_num<b.Length && a[a_num]<b[b_num] || b_num >= b.Length) { c[i] = a[a_num]; a_num++; } else { if(b_num<b.Length) { c[i] = b[b_num]; b_num++; } } } return c; }