Написать алгоритм, проходящий по массивам за 1 цикл - C#
Формулировка задачи:
Имеются два массива данных А[а] и B[в] (а и в – количества элементов массива).
Известно, что оба массива упорядочены по возрастанию. Необходимо написать
алгоритм, проходящий по этим массивам за 1 цикл вида:
Для Сч = 1 По а + в Цикл
и выдающий значения обоих массивов в порядке возрастания т.е. как бы объединив
оба массива и отсортировав их по возрастанию.
Решение задачи: «Написать алгоритм, проходящий по массивам за 1 цикл»
textual
Листинг программы
class Program
{
public static void Main()
{
int[] a = { 3, 4, 8, 9, 17, 19, 21, 40, 50, 55 }, b = { 1, 8, 16, 21, 22, 30 };
foreach (int i in Union(a, b))
Console.WriteLine(i);
}
public static int[] Union(int[] a, int[] b)
{
if (a == null || b == null)
throw new ArgumentNullException();
int[] result = new int[a.Length + b.Length];
for (int i = 0, j = 0, k = 0; ; k++)
if (i < a.Length && j < b.Length)
result[k] = a[i] < b[j] ? a[i++] : b[j++];
else if (i < a.Length)
result[k] = a[i++];
else if (j < b.Length)
result[k] = b[j++];
else break;
return result;
}
}