Составить визуальный циклический алгоритм для задачи обработки упорядоченных одномерных массивов. Соединить два упорядоченных массива Х(1) < = Х(2) < =…Х(n) и Y(1)< =Y(2)< =…Y(m) в массив Z(1) < = Z(2) < = … Z(k), при этом каждый элемент должен входить в массив Z столько раз, сколько раз он входит в массивы Х и Y.
Answers & Comments
Verified answer
См. вложенную картинку.Сам алгоритм такой: представим, что у нас есть две стопки карточек, на каждой карточке написано число, в каждой стопке карточки упорядочены (на верхней карточке написано число не меньшее, чем на нижней). Требуется переложить эти карточки в ряд в порядке возрастания написанных на них чисел.
Мы сравниваем числа, написанные на самых верхних карточках в каждой стопке (все числа, написанные на карточках под ними - гарантированно больше). Карточку с меньшим числом кладём на очередное место в ряду и опять сравниваем карточки сверху каждой стопки. Когда одна из стопок кончилась - выкладываем по порядку все оставшиеся карточки.