Объединить два упорядоченных целочисленных массива в один упорядоченный массив - 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;
- }
- }
- }
- }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д