- •Понятие «сортировка». Устойчивость сортировки.
- •Задача сортировки.
- •Понятие «ключевое поле» в сортировке.
- •Понятие внутренней сортировки.
- •Понятие внешней сортировки.
- •Причины изучения алгоритмов сортировки.
- •Группы алгоритмов внутренней сортировки.
- •Основные идеи методов сортировок с помощью вставок.
- •2)Улучшение метода простых вставок:
- •Сортировка методом простых вставок.
- •Основные идеи методов сортировок с помощью выбора.-min эл.
- •Сортировка с помощью метода прямого выбора.
- •Основные идеи методов сортировки с помощью обмена.
- •Сортировка методом Шелла.
- •Быстрая сортировка.-разобрать
- •Понятие эффективности алгоритмов и программ.
- •Виды эффективности алгоритмов программ.
- •Порядок сложности алгоритма.
- •Понятие «доминирующая» функция, «асимптотически доминирующая» функция.
- •Правила определения сложности функции.
- •Доминирование функций друг над другом.-разобрать хрень!!!
- •Понятие алгоритма полиноминальной сложности.
- •Понятие алгоритма неполиноминальной сложности.
- •Вопрос 27.
- •Проблемы реализации np-сложных алгоритмов.
- •Вопрос 27.
- •Соответствие между скоростью выполнения алгоритма и его сложностью.
- •Анализ лучшего, худшего и среднего случаев поведения алгоритма.
- •31* Ограниченность о-анализа.
- •Пространственная сложность программы.
- •Взаимосвязь различных типов сложности.
- •Контрольные замеры.
- •Файлы. Их организация и обработка.
- •Стоимость операций с вторичной памятью.
- •Внешняя сортировка. Особенности внешней сортировки.
- •Понятие «серия», «слияние», «хвост», «фаза», «этап» в алгоритмах внешней сортировки.
- •38* Алгоритм 2-х фазной сортировки прямым слиянием.
- •Алгоритм однофазной сортировки прямым слиянием.
- •Алгоритм сортировки «естественным слиянием».
- •Ускорение сортировок прямым слиянием.
- •Задача поиска.
- •Классификация методов поиска.
- •Связь задач сортировки и поиска.
- •Последовательный поиск.
- •Быстрый последовательный поиск.
- •Последовательный поиск в упорядоченной таблице. Поиск путем сравнения ключей.-херня!
- •Бинарный поиск. Интерполяционный поиск.
- •Хеширование Выбор хеш-функций.
- •Хеширование. Разрешение коллизий.
Стоимость операций с вторичной памятью.
Время, необходимое для поиска блока и чтение его в ОП достаточно велико по сравнению с временем, требуемым для обработки самих данных, размещенных в ОП.
При чтении с диска очередного блока время тратится на следующее:
позиционирование счит головки над дорожкой, содержащей блок.
ожидание пока требуемый блок окажется под считывающей головкой.
За время этих операций можно выполнить 100 000 машинных команд.
Оцениввая время работы алгоритмов, обрабатвающих данные, кот хранятся в файлах в 1ю очередь учитывают кол-во обращений к блокам. т е сколько раз проих считавание в ОП и запись блока во вторичную память. Такая операция наз доступом к блоку. Предполагается. что размер блока жестко фиксирован в ОП и зависит ОС. Мы не можем путем увеличения размера блока сократить кол-во обращений к нему. Мерой качества алгоритма работающего с внешней памятью явл кол-во обращений к блокам.
Внешняя сортировка. Особенности внешней сортировки.
Внешняя отличается от внутренней и структура данных д.б. такой, чтобы сравнительно медленные внешние запоминающие устройства м. удовлетворить потребности алгоритмов сортировки. Большинство алгоритмов внутренней сортировки бесполезны в случае внешней. Методы сортировки д.б. другими.
Сама задача сортировки остается той же, а именно расположить записи файла в порядке не убывания значений ключевого поля.
При этом мы считаем, что данные хранятся в последовательном файле. В каждый момент времени нам доступна т. одна из записей и именно это выступает в качестве большого ограничения на доступность данных. Самые распространенные способы сортировки внешних данных – это сортировки с пом. слияния. Слияние означает объединение 2 или более последовательностей в одну упорядоченную последовательность с пом. повторяющегося выбора из доступных в данный момент элементов.
Предположим, что сортируемый нами файл состоит их 10 000 записей по 100 слов каждая.
В ОП м. поместиться т. 2 000 записей. В этом случае м. разбить наш файл на 5 подфайлов, рассортировать каждое их них, а затем их слить в 1 полностью отсортированный файл. Большинство методов внешней сортировки исп. подобный подход. Сначала файл делится на несколько подфайлов, а затем они сливаются в 1 ф.
Понятие «серия», «слияние», «хвост», «фаза», «этап» в алгоритмах внешней сортировки.
Сущ. понятие серия – последовательность записей b1b2…bk , где bi <= bi+1
Файл из b1… bm записей делится на серии длиной к, если для всех i > 0 ki <= m
bk(i-1)+1, bk(i-1)+2…bki
Если m не делится нацело на К, то есть m = pk + q, q<k, то bm-q+1, bm-q+2…bm называется хвостом.
-1 2 5 -9 | 10 7 99 -25 | 29
29 – хвост
Слияние означает объединение 2-х или более упорядоченных последовательностей в 1 упорядоченную последовательность. . В общем случае: Из 2ух послед сравнивается 2 наименьших эл-та и в получаемый файл выводится меньший из них и далее процесс повторяется.
В сортировки слиянием начинают с 2-х файлов, организованных в виду серий длиной К. Назовем ф. ф1 и ф2. Для них д. выполняться след. условия:
кол-во серий, вкл. хвосты в файлах ф1 и ф2 отличаются не больше, чем на 1.
хотя бы 1 ф. может иметь хвост.
Действие по однократной обработке всего множества данных наз. фазой.
Наименьший подпроцесс повторение кот. составляет процесс сортировки наз. проходом или этапом.
