C#控制台 设计程序将两个递增有序数组合并为一个递增有序数组

控制台程序 求大神

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;
        }

温馨提示:答案为网友推荐,仅供参考
第1个回答  2014-06-24
.net frame 3.5 下的 Linq 很容易实现

using System;
using System.Collections.Generic;
using System.Windows.Forms;
using System.Linq;

namespace Login
{
static class Program
{
static void Main()
{
List<int> a = new List<int>();
List<int> b = new List<int>();
for (int i = 0; i < 10; i++)
{
a.Add(i);
}
for (int i = 10; i < 20; i++)
{
b.Add(i);
}
List<int> x = b.Union(a).ToList();
x.Sort();
}
}
}本回答被网友采纳
第2个回答  2014-06-24
1.数组合并2.排序 自己动手写代码
相似回答