Главная Случайная страница Контакты | Мы поможем в написании вашей работы! | ||
|
Алгоритм М. (Двухпутевое слияние)
Этот алгоритм осуществляет слияние двух упорядоченный файлов х1, х2, …, хm и у1, у2, …, уn в один файл z1, z2, …, zm+n.
(Начальная установка) Установить i:=1, j:=1, k:=1.
(Найти наименьший элемент) Если хi £ уj, то перейти к шагу М3; в противном случае перейти к М5.
(Вывести хi) Установить zk:=хi, k:=k+1, i:=i+1. Если i £ m, то возвратиться к шагу М2.
(Вывести уj,…,уn) Установить (zk, …, zm+n):=(уj, …, уn) и завершить работу алгоритма.
(Вывести уi) Установить zk:=уi, k:=k+1, j:=j+1. Если j £ n, то возвратиться к шагу М2.
(Вывести хi,…,хm) Установить (zk, …, zm+n):=(хi, …, хm) и завершить работу алгоритма.
Эта простая процедура слияния наилучший вариант, если m» n. (Но если m гораздо меньше n, можно разработать гораздо более эффективные алгоритмы сортировки).
Рис. 5 Сортировка естественным двухпутевым слиянием
Можно заметить, что метод сортировки вставками – это есть слияние двух подфайлов, у одного из которого n=1! Следовательно, задачу сортировки можно свести к слияниям, сливая все более длинные подфайлы до тех пор, пока не будет отсортирован весь файл. Для ускорения процесса вставок, можно рассмотреть вставку нескольких элементов за раз (n>1), группируя их. Такой метод слияний – один из самых первых методов сортировки, предложенный в 1945 Джоном фон Нейманом и носит название естественное двухпутевое слияние.
Блок-схема, соответствующая алгоритму Е. (Подразумевается использование оператора GOTO) |
Дата публикования: 2015-01-10; Прочитано: 464 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!