Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ВНЕШНИЕ СОРТИРОВКИ.docx
Скачиваний:
14
Добавлен:
26.09.2019
Размер:
57.85 Кб
Скачать

Внешние сортировки

1) простые(слияние):

Простое:

-Без использования внутр. Сортировки

-С использованием

Естественное:

-Несбалансированное

-Сбалансированное

2) Улучшенные(естественное сбалансированное слияние):

-Многофазная

-Каскадная

Характеристики:

- двухпутевое

-многопутевое

-двухфазные

-однофазные

Н. Вирт дает следующее определение слияния: "Слияние означает объединение двух (или более) последовательностей в одну-единственную упорядоченную последовательность с помощью повторяющегося выбора из доступных в данный момент элементов". Другими словами, сначала серии распределяются на два или несколько вспомогательных файлов. Распределение серий идет поочередно, то есть первая серия записывается в первый вспомогательный файл, вторая — во второй и так далее. После того как произошла запись в последний файл, опять начинается запись серии в первый вспомогательный файл. После распределения всех серий, они объединяются в более длинные упорядоченные отрезки: из каждого вспомогательного файла берется по одной серии, и они сливаются. Если в каком-то файле серия заканчивается, то следующая пока не рассматривается. Сформированный более длинный упорядоченный отрезок записывается либо в исходный файл, либо в какой-то из вспомогательных файлов, это зависит от вида сортировки. После того как все серии из всех вспомогательных файлов объединены в новые серии, опять начинается их распределение. Так продолжается до тех пор, пока все данные не будут упорядочены.

Можно выделить следующие две характеристики сортировки слиянием.

□ Количество вспомогательных файлов, на которые идет распределение серий. Если данные распределяются на два вспомогательных файла, то сортировка называется двухпутевьш слиянием, если на N (N > 2) вспомогательных файлов, то — многопутевым слиянием.

□ Количество фаз в реализации сортировки. Фазой называются действия по однократной обработке всего множества. Наименьший же процесс, повторение которого составляет процесс сортировки, называется проходом или этапом. В двухфазной сортировке отдельно реализуются две фазы: распределение и слияние. После того как произошло распределение данных по вспомогательным файлам, они объединяются и записываются в исходный файл. В однофазной сортировке обе эти фазы объединены в одну. Во время слияния серий данные не только объединяются, но и сразу же распределяются по другим вспомогательным файлам, которые становятся исходными для следующего прохода. Однофазная сортировка * более эффективна, чем двухфазная, поскольку фаза распределения фактически не относится к сортировке, так как во время этой фазы элементы не переставляются и не упорядочиваются, а количество операций переписи данных такое же, как и на фазе слияния. Однако количество вспомогательных файлов, которые требуются для однофазной сортировки, больше, чем то, которое требуется для двухфазной сортировки.