Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VOPROS_K_EKZAMENU_SiAOD.docx
Скачиваний:
67
Добавлен:
27.09.2019
Размер:
120.34 Кб
Скачать
  1. Понятие внешней сортировки.

Внешняя отличается от внутренней и структура данных д.б. такой, чтобы сравнительно медленные внешние запоминающие устройства м. удовлетворить потребности алгоритмов сортировки. Большинство алгоритмов внутренней сортировки бесполезны в случае внешней. Методы сортировки д.б. другими.

Сама задача сортировки остается той же, а именно расположить записи файла в порядке не убывания значений ключевого поля.

При этом мы считаем, что данные хранятся в последовательном файле. В каждый момент времени нам доступна т. одна из записей и именно это выступает в качестве большого ограничения на доступность данных. Самые распространенные способы сортировки внешних данных – это сортировки с пом. слияния. Слияние означает объединение 2 или более последовательностей в одну упорядоченную последовательность с пом. повторяющегося выбора из доступных в данный момент элементов.

Предположим, что сортируемый нами файл состоит их 10 000 записей по 100 слов каждая.

В ОП м. поместиться т. 2 000 записей. В этом случае м. разбить наш файл на 5 подфайлов, рассортировать каждое их них, а затем их слить в 1 полностью отсортированный файл. Большинство методов внешней сортировки исп. подобный подход. Сначала файл делится на несколько подфайлов, а затем они сливаются в 1 ф.

  1. Причины изучения алгоритмов сортировки.

В настоящее время разработано большое кол-во разных алгоритмов, как для внутренней, так и для внешней сортировок. Появляются новые алгоритмы. Связано с тем, что нельзя разработать самый эффективный алгоритм на все случаи жизни.

Каждый алгоритм наиболее эффективный в зависимости от конкретных усл. применения.

Среди всех алгоритмов сортировки существует группа алгоритмов, кот. относится к классике программирования.

Алгоритмы сортировки изучают по след. причинам:

  1. имеют большое практическое значение

появление большого кол-ва языков программирования.

СУБД

на непосредственный процесс сортировки данных отводится достаточно большое кол-во машинного времени при решении прикладных задач, хотя сама сортировка чаще всего это некоторый вспомогательный процесс при получении решения.

  1. алгоритм сортировки – пример того, как надо подходить к решению задач программирования вообще. На их примере можно увидеть важные принципы манипулирования структурами данных.

  2. позволяют продемонстрировать базовые концепции анализа алгоритмов. Т.е. оценки качество алгоритмов.

  3. га примере алгоритмов сортировки легко увидеть, как усложнив уже имеющийся алгоритм можно получить другой более эффективный.

  4. т.к. все алгоритмы сортировки решают 1 и ту же задачу (сортировку), то с их помощью можно продемонстрировать как выбор алгоритма влияет на эффективное решение задачи.

  1. Группы алгоритмов внутренней сортировки.

Внутренняя сортировка только в рамках исходного массива. Никаких дополнительных!!!

Среди внутренних методов сортировки без введения доп. структур дан. (массивов) можно в соответствии с принципами их работы выделить 3 группы семейств алгоритмов:

  1. сортировка с помощью вставок

  2. с помощью выбора

  3. с помощью обмена

Для работы всех алгоритмов нужно ввести некоторую вспомогательную переменную. Она нужна для временного хранения значения элемента при перестановке элементов. Пусть это Х.