Вопрос № 143221: Добрый вечер! Помогите, пожалуйста, найти ошибку в решении задачи. Задача следующая: есть два упорядоченных по возрастанию массива, один длины M, другой длины N. Из этих массивов нужно составить новый упорядоченный по возрастанию массив, длины M + ...
Вопрос № 143.221
Добрый вечер! Помогите, пожалуйста, найти ошибку в решении задачи. Задача следующая: есть два упорядоченных по возрастанию массива, один длины M, другой длины N. Из этих массивов нужно составить новый упорядоченный по возрастанию массив, длины M + N. (соединить два массива в один, а затем его упорядочить нельзя). Решать эту задачу нам нужно следующим образом: берём первый элемент из одного из массивов (того массива, в котором содержится максимальный элемент из всех чисел, входящих в первый и во второй
массивы) и все числа, которые меньше его или равны ему (если есть) переписываем в новый массив, затем берём второй элемент из первого массива и т.д… Вот код задачи, мне кажется, что у меня ошибка в цикле с while, но исправит не могу.
if arrayM[M] > arrayN[N] then begin for i:= 1 to M do begin while arrayM[i] >= arrayN[j]do begin newarray[k]:= arrayN[j]; inc(k); inc(j); end; end; newarray[k]:= arrayM[i]; inc(k); end;
en
d else begin for i:= 1 to N do begin while arrayN[i] >= arrayM[j] do begin newarray[k]:= arrayM[j]; inc(j); inc(k); end; newarray[k]:= arrayN[i]; inc(k); end; end;
Отправлен: 06.09.2008, 18:00
Вопрос задал: Miracle (статус: Посетитель)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Delph
Здравствуйте, Miracle!
Можно поступить так: просматриваем в цикле for первый массив, вложенным циклом While идёт по второму. Сначала выбираем все непросмотренные ещё элементы второго массива, не превосходящие текущий элемент первого. Потом выбираем текущий элемент из первого массива... и так до конца первого. Поскольку есть вероятность, что во втором массиве ещё что-то осталось, отдельным циклом смотрим весь этот остаток. Программа в приложении.
Приложение:
--------- Сомневайся во всём! Реальность часто бывает не такой, как мы о ней думаем.
Ответ отправил: Delph (статус: Практикант)
Ответ отправлен: 06.09.2008, 21:46 Оценка за ответ: 5 Комментарий оценки: Спасибо!