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

Для этой сортировки надо 3 файла. Исх. ф. f. Вспомогательные файлы g, t.

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

  1. из файла f серии попеременно распределяются в файл g и t. Фаза распределения. При этом длина каждой серии как получится.

  2. Из файла g и t серии сливаются.

  3. Процесс заканчивается, когда в файле остается 1 серия.

Пример:

f: 3 14 15 9 2 5 17 -4 0

Берем 3 14 15. 9 меньше предыдущего, поэтому в t. 9 > 2 -> g.

1 проход

g: 3 14 15 | 2 5 17 |

t: 9 | - 4 0 |

Сравниваем кажд. эл. из g со всеми из t

Фаза слияния: f: 3 9 -4 0 14 15 2 5 17

2 проход:

g: 3 9 2 5 17

t: -4 0 14 15

Нет деления на серии?

f: -4 0 3 9 2 5 14 15 17

g: -4 0 3 9

t: 2 5 14 15 17

f: - 4 0 2 3 5 9 14 15 17

  1. Ускорение сортировок прямым слиянием.

Рассмотренные сортировки слиянием начинают свою работу с рассмотрения серии длиной = 1. Для более быстрого процесса можем сделать следующее:

  1. Считать в ОП группы из k записей так, чтобы они могли разместиться в ОП.

  2. отсортировать эти записи в ОП с пом. одного из методов сортировки для внутренних методов сортировки.

  3. отсортированные записи записать во внешнюю память в виде серий длиной k и далее начинать процесс сортировки слиянием с серией длиной k.

  1. Задача поиска.

Имеется набор из n записей. Надо найти 1 из них. Как и в случае сортировки, предполагаем, что каждая запись имеет 1 специальное поле ключ. В общем случае для n записей имеется n различных ключей для того, чтобы каждый ключ однозначно идентифицировал связанную с ним запись.

Набор всех записей наз. таблицей, если они м. разместиться в ОП или наз. файлом, если таблица очень велика и не может целиком разместиться в ОП. При этом большой файл или группу файлов часто называют БД.

Алгоритм поиска имеет аргумент К и задача заключается в нахождении записи, для кот. К служит ключом. Рез-тот поиска м.б. 1) завершился успешно и уникальная запись, содерж. К найдена, 2) Поиск оказался неудачным, запись с К не сущ.

После неудачного поиска иногда желательно внести новую запись, содержащую ключ К в таблицу. Если метод это осуществляет, то он носит название алгоритма поиска и вставки.

Так же, к. и в алгоритмах сортировки алгоритмы работают т. с ключ. полем К. Сама цель поиска – нахождение инфы, хранящейся в записи с ключом К. После нахождения записи с ключом К поиск связанной с ним инфы – простая задача. Ее решение зависит от способа хранения инфы.

Во многих прогах на выполнение задачи поиска отводится достаточно много времени. Замена одного метода поиска на другой может заметно увеличить время работы проги. Иногда за счет изменения структуры данных задачу поиска можно исключить совсем.

  1. Классификация методов поиска.

Методы поиска можно классифицировать несколькими способами:

  1. внутренний – поиск в таблице, внешний – поиск в файлах

  2. статические и динамические методы поиска. Статические методы основаны на том, что содержимое таблицы не меняется и главная задача этих методов – уменьшить время поиска. Динамические методы рассчитаны на то, что сама таблица часто изменяется за счет вставки или удаления элементов.

  3. разделение методов поиска в зависимости от того, на чем они основаны. На сравнении ключей или числовых св-вах ключей.