int[] a = { 1, 3, 5 };
int[] b = { 4, 6, 8 };
int[] d = new int[a.Length + b.Length];
int i = 0, j = 0, k = 0;
while (i < a.Length || j < b.Length)
{
if (a[i] < b[j])
{
d[k++] = a[i++];
}
else
{
d[k++] = b[j++];
}
}
追问用这个做的 Microsoft Visual Studio 2010
追答刚才的方法有bug,下面是我修改过的
public static int[] sort_A_B(int[] a, int[] b)
{
int[] d = new int[a.Length + b.Length];
int i = 0, j = 0, k = 0;
while (i < a.Length || j < b.Length)
{
if (i < a.Length && a[i] <= b[j])
{
d[k++] = a[i++];
}
if (i >= a.Length)
{
while (j < b.Length)
d[k++] = b[j++];
}
if (j < b.Length && a[i] >= b[j])
{
d[k++] = b[j++];
}
if (j >= b.Length)
{
while (i < a.Length)
d[k++] = a[i++];
}
}
return d;
}