Слияние двух массивов отсортированных по убыванию - C#
Формулировка задачи:
Нужно написать прогу:
Даны два массива. Массив А состоит из N элементов , массив В состоит из М элементов. Оба массива отсортированы по убыванию. Разработать программу для слияния этих массивов в отсортированный по неубыванию массив С.
Заранее спасибо
Решение задачи: «Слияние двух массивов отсортированных по убыванию»
textual
Листинг программы
using System;
namespace MergeArrays
{
public class MergeArrays
{
public static int[] Merge (int[] arrA, int[] arrB)
{
int posA = arrA.Length - 1, posB = arrB.Length - 1, posC = 0;
int[] arrC = new int[arrA.Length + arrB.Length];
while (posA >= 0) {
if (posB >= 0) {
if (arrA [posA] < arrB [posB])
arrC [posC++] = arrA [posA--];
else if (arrB [posB] < arrA [posA])
arrC [posC++] = arrB [posB--];
else {
arrC [posC++] = arrA [posA--];
arrC [posC++] = arrB [posB--];
}
} else
arrC [posC++] = arrA [posA--];
}
while (posB >= 0)
arrC [posC++] = arrB [posB--];
return arrC;
}
public static void Main() {
int[] a = { 10, 8, 7, 6, 5, 2, 1 };
int[] b = { 9, 7, 6, 3, 1, 0 };
int[] c = Merge(a, b);
foreach (int n in c)
Console.Write(n + " ");
Console.WriteLine();
}
}
}