Объединить два упорядоченных целочисленных массива в один упорядоченный массив - C#

Узнай цену своей работы

Формулировка задачи:

Даны два упорядоченных массива целых чисел М1 и М2. Объединить их в один упоря-доченный массив. Рассмот¬реть случаи, когда массивы М1 и М2 упорядочены одинаково и когда — по-разному.

Решение задачи: «Объединить два упорядоченных целочисленных массива в один упорядоченный массив»

textual
Листинг программы
private static void arrayMerge(string[] args)
{
    int[] a = new int[] { 2, 5, 8, 9, 11, 36, 2567 },
        b = new int[] { -468, -441, -66, -65, -12, -10, 6, 8, 10, 12, 36, 37, 10000 }.Reverse().ToArray();
 
    int len1 = a.Length;
    int len2 = b.Length;
    int[] result = new int[len1 + len2];
 
    int aPos = 0, aInc = 1;
    if (a[len1 - 1] < a[0])
    {
        aPos = len1 - 1;
        aInc = -1;
    }
 
    int bPos = 0, bInc = 1;
    if (b[len1 - 1] < b[0])
    {
        bPos = len2 - 1;
        bInc = -1;
    }
 
    for (int i = 0; i < len1 + len2; i++)
    {
        if (a[aPos] < b[bPos])
        {
            result[i] = a[aPos];
            aPos += aInc;
 
            if (aPos == -1 || aPos == len1)
            {
                while (++i < len1 + len2)
                {
                    result[i] = b[bPos];
                    bPos += bInc;
                }
                break;
            }
        }
        else
        {
            result[i] = b[bPos];
            bPos += bInc;
 
            if (bPos == -1 || bPos == len2)
            {
                while (++i < len1 + len2)
                {
                    result[i] = a[aPos];
                    aPos += aInc;
                }
                break;
            }
        }
    }
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы