/// <summary>
/// 两个从小到大排序好的int数组,合并后也返回一个从小到大排序好的数组,
/// 包含两个数组中全部的元素
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
public static int[] MergeArray(int[] a, int[] b)
{
if( a == null || b== null )
throw new NotSupportedException();
int lena = a.Length;
int lenb = b.Length;
int[] c = new int[lena+lenb];
int i, j, n;
i = j = n = 0;
while (i < lena && j < lenb)
{
if (a[i] < b[j])
{
c[n++] = a[i++];
}
else if (a[i] > b[j])
{
c[n++] = b[j++];
}
else
{
c[n++] = a[i++];
c[n++] = b[j++];
}
}
if (i == lena)
{
while (j < lenb)
c[n++] = b[j++];
}
else
{
while (i < lena)
c[n++] = a[i++];
}
return c;
}