- •Понятие «сортировка». Устойчивость сортировки.
- •Задача сортировки.
- •Понятие «ключевое поле» в сортировке.
- •Понятие внутренней сортировки.
- •Понятие внешней сортировки.
- •Причины изучения алгоритмов сортировки.
- •Группы алгоритмов внутренней сортировки.
- •Основные идеи методов сортировок с помощью вставок.
- •2)Улучшение метода простых вставок:
- •Сортировка методом простых вставок.
- •Основные идеи методов сортировок с помощью выбора.-min эл.
- •Сортировка с помощью метода прямого выбора.
- •Основные идеи методов сортировки с помощью обмена.
- •Сортировка методом Шелла.
- •Быстрая сортировка.-разобрать
- •Понятие эффективности алгоритмов и программ.
- •Виды эффективности алгоритмов программ.
- •Порядок сложности алгоритма.
- •Понятие «доминирующая» функция, «асимптотически доминирующая» функция.
- •Правила определения сложности функции.
- •Доминирование функций друг над другом.-разобрать хрень!!!
- •Понятие алгоритма полиноминальной сложности.
- •Понятие алгоритма неполиноминальной сложности.
- •Вопрос 27.
- •Проблемы реализации np-сложных алгоритмов.
- •Вопрос 27.
- •Соответствие между скоростью выполнения алгоритма и его сложностью.
- •Анализ лучшего, худшего и среднего случаев поведения алгоритма.
- •31* Ограниченность о-анализа.
- •Пространственная сложность программы.
- •Взаимосвязь различных типов сложности.
- •Контрольные замеры.
- •Файлы. Их организация и обработка.
- •Стоимость операций с вторичной памятью.
- •Внешняя сортировка. Особенности внешней сортировки.
- •Понятие «серия», «слияние», «хвост», «фаза», «этап» в алгоритмах внешней сортировки.
- •38* Алгоритм 2-х фазной сортировки прямым слиянием.
- •Алгоритм однофазной сортировки прямым слиянием.
- •Алгоритм сортировки «естественным слиянием».
- •Ускорение сортировок прямым слиянием.
- •Задача поиска.
- •Классификация методов поиска.
- •Связь задач сортировки и поиска.
- •Последовательный поиск.
- •Быстрый последовательный поиск.
- •Последовательный поиск в упорядоченной таблице. Поиск путем сравнения ключей.-херня!
- •Бинарный поиск. Интерполяционный поиск.
- •Хеширование Выбор хеш-функций.
- •Хеширование. Разрешение коллизий.
Понятие внешней сортировки.
Внешняя отличается от внутренней и структура данных д.б. такой, чтобы сравнительно медленные внешние запоминающие устройства м. удовлетворить потребности алгоритмов сортировки. Большинство алгоритмов внутренней сортировки бесполезны в случае внешней. Методы сортировки д.б. другими.
Сама задача сортировки остается той же, а именно расположить записи файла в порядке не убывания значений ключевого поля.
При этом мы считаем, что данные хранятся в последовательном файле. В каждый момент времени нам доступна т. одна из записей и именно это выступает в качестве большого ограничения на доступность данных. Самые распространенные способы сортировки внешних данных – это сортировки с пом. слияния. Слияние означает объединение 2 или более последовательностей в одну упорядоченную последовательность с пом. повторяющегося выбора из доступных в данный момент элементов.
Предположим, что сортируемый нами файл состоит их 10 000 записей по 100 слов каждая.
В ОП м. поместиться т. 2 000 записей. В этом случае м. разбить наш файл на 5 подфайлов, рассортировать каждое их них, а затем их слить в 1 полностью отсортированный файл. Большинство методов внешней сортировки исп. подобный подход. Сначала файл делится на несколько подфайлов, а затем они сливаются в 1 ф.
Причины изучения алгоритмов сортировки.
В настоящее время разработано большое кол-во разных алгоритмов, как для внутренней, так и для внешней сортировок. Появляются новые алгоритмы. Связано с тем, что нельзя разработать самый эффективный алгоритм на все случаи жизни.
Каждый алгоритм наиболее эффективный в зависимости от конкретных усл. применения.
Среди всех алгоритмов сортировки существует группа алгоритмов, кот. относится к классике программирования.
Алгоритмы сортировки изучают по след. причинам:
имеют большое практическое значение
появление большого кол-ва языков программирования.
СУБД
на непосредственный процесс сортировки данных отводится достаточно большое кол-во машинного времени при решении прикладных задач, хотя сама сортировка чаще всего это некоторый вспомогательный процесс при получении решения.
алгоритм сортировки – пример того, как надо подходить к решению задач программирования вообще. На их примере можно увидеть важные принципы манипулирования структурами данных.
позволяют продемонстрировать базовые концепции анализа алгоритмов. Т.е. оценки качество алгоритмов.
га примере алгоритмов сортировки легко увидеть, как усложнив уже имеющийся алгоритм можно получить другой более эффективный.
т.к. все алгоритмы сортировки решают 1 и ту же задачу (сортировку), то с их помощью можно продемонстрировать как выбор алгоритма влияет на эффективное решение задачи.
Группы алгоритмов внутренней сортировки.
Внутренняя сортировка только в рамках исходного массива. Никаких дополнительных!!!
Среди внутренних методов сортировки без введения доп. структур дан. (массивов) можно в соответствии с принципами их работы выделить 3 группы семейств алгоритмов:
сортировка с помощью вставок
с помощью выбора
с помощью обмена
Для работы всех алгоритмов нужно ввести некоторую вспомогательную переменную. Она нужна для временного хранения значения элемента при перестановке элементов. Пусть это Х.
