
- •Понятие «сортировка». Устойчивость сортировки.
- •Задача сортировки.
- •Понятие «ключевое поле» в сортировке.
- •Понятие внутренней сортировки.
- •Понятие внешней сортировки.
- •Причины изучения алгоритмов сортировки.
- •Группы алгоритмов внутренней сортировки.
- •Основные идеи методов сортировок с помощью вставок.
- •2)Улучшение метода простых вставок:
- •Сортировка методом простых вставок.
- •Основные идеи методов сортировок с помощью выбора.-min эл.
- •Сортировка с помощью метода прямого выбора.
- •Основные идеи методов сортировки с помощью обмена.
- •Сортировка методом Шелла.
- •Быстрая сортировка.-разобрать
- •Понятие эффективности алгоритмов и программ.
- •Виды эффективности алгоритмов программ.
- •Порядок сложности алгоритма.
- •Понятие «доминирующая» функция, «асимптотически доминирующая» функция.
- •Правила определения сложности функции.
- •Доминирование функций друг над другом.-разобрать хрень!!!
- •Понятие алгоритма полиноминальной сложности.
- •Понятие алгоритма неполиноминальной сложности.
- •Вопрос 27.
- •Проблемы реализации np-сложных алгоритмов.
- •Вопрос 27.
- •Соответствие между скоростью выполнения алгоритма и его сложностью.
- •Анализ лучшего, худшего и среднего случаев поведения алгоритма.
- •31* Ограниченность о-анализа.
- •Пространственная сложность программы.
- •Взаимосвязь различных типов сложности.
- •Контрольные замеры.
- •Файлы. Их организация и обработка.
- •Стоимость операций с вторичной памятью.
- •Внешняя сортировка. Особенности внешней сортировки.
- •Понятие «серия», «слияние», «хвост», «фаза», «этап» в алгоритмах внешней сортировки.
- •38* Алгоритм 2-х фазной сортировки прямым слиянием.
- •Алгоритм однофазной сортировки прямым слиянием.
- •Алгоритм сортировки «естественным слиянием».
- •Ускорение сортировок прямым слиянием.
- •Задача поиска.
- •Классификация методов поиска.
- •Связь задач сортировки и поиска.
- •Последовательный поиск.
- •Быстрый последовательный поиск.
- •Последовательный поиск в упорядоченной таблице. Поиск путем сравнения ключей.-херня!
- •Бинарный поиск. Интерполяционный поиск.
- •Хеширование Выбор хеш-функций.
- •Хеширование. Разрешение коллизий.
Алгоритм сортировки «естественным слиянием».
Для этой сортировки надо 3 файла. Исх. ф. f. Вспомогательные файлы g, t.
Каждый проход этой сортировки осуществляется след. образом.
из файла f серии попеременно распределяются в файл g и t. Фаза распределения. При этом длина каждой серии как получится.
Из файла g и t серии сливаются.
Процесс заканчивается, когда в файле остается 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. Для более быстрого процесса можем сделать следующее:
Считать в ОП группы из k записей так, чтобы они могли разместиться в ОП.
отсортировать эти записи в ОП с пом. одного из методов сортировки для внутренних методов сортировки.
отсортированные записи записать во внешнюю память в виде серий длиной k и далее начинать процесс сортировки слиянием с серией длиной k.
Задача поиска.
Имеется набор из n записей. Надо найти 1 из них. Как и в случае сортировки, предполагаем, что каждая запись имеет 1 специальное поле ключ. В общем случае для n записей имеется n различных ключей для того, чтобы каждый ключ однозначно идентифицировал связанную с ним запись.
Набор всех записей наз. таблицей, если они м. разместиться в ОП или наз. файлом, если таблица очень велика и не может целиком разместиться в ОП. При этом большой файл или группу файлов часто называют БД.
Алгоритм поиска имеет аргумент К и задача заключается в нахождении записи, для кот. К служит ключом. Рез-тот поиска м.б. 1) завершился успешно и уникальная запись, содерж. К найдена, 2) Поиск оказался неудачным, запись с К не сущ.
После неудачного поиска иногда желательно внести новую запись, содержащую ключ К в таблицу. Если метод это осуществляет, то он носит название алгоритма поиска и вставки.
Так же, к. и в алгоритмах сортировки алгоритмы работают т. с ключ. полем К. Сама цель поиска – нахождение инфы, хранящейся в записи с ключом К. После нахождения записи с ключом К поиск связанной с ним инфы – простая задача. Ее решение зависит от способа хранения инфы.
Во многих прогах на выполнение задачи поиска отводится достаточно много времени. Замена одного метода поиска на другой может заметно увеличить время работы проги. Иногда за счет изменения структуры данных задачу поиска можно исключить совсем.
Классификация методов поиска.
Методы поиска можно классифицировать несколькими способами:
внутренний – поиск в таблице, внешний – поиск в файлах
статические и динамические методы поиска. Статические методы основаны на том, что содержимое таблицы не меняется и главная задача этих методов – уменьшить время поиска. Динамические методы рассчитаны на то, что сама таблица часто изменяется за счет вставки или удаления элементов.
разделение методов поиска в зависимости от того, на чем они основаны. На сравнении ключей или числовых св-вах ключей.