Студопедия.Орг Главная | Случайная страница | Контакты | Мы поможем в написании вашей работы!  
 

Двухпутевое упрощенное слияние



Алгоритм М. (Двухпутевое слияние)

Этот алгоритм осуществляет слияние двух упорядоченный файлов х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 | Нарушение авторского права страницы | Мы поможем в написании вашей работы!



studopedia.org - Студопедия.Орг - 2014-2024 год. Студопедия не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования (0.006 с)...