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

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

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

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

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

textual
Листинг программы
  1. private static void arrayMerge(string[] args)
  2. {
  3.     int[] a = new int[] { 2, 5, 8, 9, 11, 36, 2567 },
  4.         b = new int[] { -468, -441, -66, -65, -12, -10, 6, 8, 10, 12, 36, 37, 10000 }.Reverse().ToArray();
  5.  
  6.     int len1 = a.Length;
  7.     int len2 = b.Length;
  8.     int[] result = new int[len1 + len2];
  9.  
  10.     int aPos = 0, aInc = 1;
  11.     if (a[len1 - 1] < a[0])
  12.     {
  13.         aPos = len1 - 1;
  14.         aInc = -1;
  15.     }
  16.  
  17.     int bPos = 0, bInc = 1;
  18.     if (b[len1 - 1] < b[0])
  19.     {
  20.         bPos = len2 - 1;
  21.         bInc = -1;
  22.     }
  23.  
  24.     for (int i = 0; i < len1 + len2; i++)
  25.     {
  26.         if (a[aPos] < b[bPos])
  27.         {
  28.             result[i] = a[aPos];
  29.             aPos += aInc;
  30.  
  31.             if (aPos == -1 || aPos == len1)
  32.             {
  33.                 while (++i < len1 + len2)
  34.                 {
  35.                     result[i] = b[bPos];
  36.                     bPos += bInc;
  37.                 }
  38.                 break;
  39.             }
  40.         }
  41.         else
  42.         {
  43.             result[i] = b[bPos];
  44.             bPos += bInc;
  45.  
  46.             if (bPos == -1 || bPos == len2)
  47.             {
  48.                 while (++i < len1 + len2)
  49.                 {
  50.                     result[i] = a[aPos];
  51.                     aPos += aInc;
  52.                 }
  53.                 break;
  54.             }
  55.         }
  56.     }
  57. }

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


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

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

6   голосов , оценка 3.833 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы