- •Понятие «сортировка». Устойчивость сортировки.
- •Задача сортировки.
- •Понятие «ключевое поле» в сортировке.
- •Понятие внутренней сортировки.
- •Понятие внешней сортировки.
- •Причины изучения алгоритмов сортировки.
- •Группы алгоритмов внутренней сортировки.
- •Основные идеи методов сортировок с помощью вставок.
- •2)Улучшение метода простых вставок:
- •Сортировка методом простых вставок.
- •Основные идеи методов сортировок с помощью выбора.-min эл.
- •Сортировка с помощью метода прямого выбора.
- •Основные идеи методов сортировки с помощью обмена.
- •Сортировка методом Шелла.
- •Быстрая сортировка.-разобрать
- •Понятие эффективности алгоритмов и программ.
- •Виды эффективности алгоритмов программ.
- •Порядок сложности алгоритма.
- •Понятие «доминирующая» функция, «асимптотически доминирующая» функция.
- •Правила определения сложности функции.
- •Доминирование функций друг над другом.-разобрать хрень!!!
- •Понятие алгоритма полиноминальной сложности.
- •Понятие алгоритма неполиноминальной сложности.
- •Вопрос 27.
- •Проблемы реализации np-сложных алгоритмов.
- •Вопрос 27.
- •Соответствие между скоростью выполнения алгоритма и его сложностью.
- •Анализ лучшего, худшего и среднего случаев поведения алгоритма.
- •31* Ограниченность о-анализа.
- •Пространственная сложность программы.
- •Взаимосвязь различных типов сложности.
- •Контрольные замеры.
- •Файлы. Их организация и обработка.
- •Стоимость операций с вторичной памятью.
- •Внешняя сортировка. Особенности внешней сортировки.
- •Понятие «серия», «слияние», «хвост», «фаза», «этап» в алгоритмах внешней сортировки.
- •38* Алгоритм 2-х фазной сортировки прямым слиянием.
- •Алгоритм однофазной сортировки прямым слиянием.
- •Алгоритм сортировки «естественным слиянием».
- •Ускорение сортировок прямым слиянием.
- •Задача поиска.
- •Классификация методов поиска.
- •Связь задач сортировки и поиска.
- •Последовательный поиск.
- •Быстрый последовательный поиск.
- •Последовательный поиск в упорядоченной таблице. Поиск путем сравнения ключей.-херня!
- •Бинарный поиск. Интерполяционный поиск.
- •Хеширование Выбор хеш-функций.
- •Хеширование. Разрешение коллизий.
Основные идеи методов сортировок с помощью вставок.
Здесь основная идея в том, чтобы вставить следующий не отсортированный элемент в нужную позицию уже отсортированного диапазона. На практике это выглядит так:
сортируем первые два элемента
смотрим третий элемент и вставляем его в нужную позицию по отношению к первым двум
Продолжаем процесс до конца сортируемого множества.
Этот метод часто используют при сортировке карт: берем один элемент и вставляем его в нужное место среди тех, что мы уже обработали (тем самым оставляя их отсортированными).
Основная идея методов
b1…bj-1 bj… bn ((|b1 b2 …bj-1 |bj bj+1 ..bn)) сказать про отсортированную часть..
1)Метод простых вставок: (сортировка по возрастанию)
2)Улучшение метода простых вставок:
Для поиска места вставляемого эл-та исп. метод двоичного поиска, метод деления пополам.
b1 b2 b3 b4 b5a
3) сортировка с убывающем смещением = сортировка Шелла
Сортировка методом простых вставок.
Метод простых вставок: (сортировка по возрастанию)
b1…bj-1 bj… bn
k1<=k2<=…<kj-1
Берем bj и сравниваем с bj-1. Если bj > bj-1 – все ок. Иначе если bj < bj-1, тогда сравниваем bj и bj-2
Операции сравнения и перемещения эл. по отсортированной части чередуют между собой. Метод просеивания или погружения.
Алгоритм:
запоминание bj в Х
сравниваем эл. bj-1 с Х
если меньше, чем Х, то просмотр закончен, т.к. bj уже на своем месте. Увеличиваем отсортированную часть на 1 эл. и Шаг 1.
если больше, то сдвиг в отсортирован. части влево (перемещ. bj-1 вперед на 1 эл.) и сравнение bj-2 с Х.
В начальный момент мы берем только 1 эл.
Пример этого метода:
4 |
1 |
5 |
1 |
7 |
3 |
6 |
х=1
сравниваем 4 и 1.
4>1 =>
4 |
4 |
5 |
1 |
7 |
3 |
6 |
1 |
4 |
5 |
1 |
7 |
3 |
6 |
х=5
сравниваем 4 с 5
все остается также.
х=1
1 |
4 |
5 |
5 |
7 |
3 |
6 |
1 |
4 |
4 |
5 |
7 |
3 |
6 |
1 |
1 |
4 |
5 |
7 |
3 |
6 |
х=7
также
х=3
1 |
1 |
4 |
5 |
7 |
7 |
6 |
1 |
1 |
4 |
5 |
5 |
7 |
6 |
1 |
1 |
4 |
4 |
5 |
7 |
6 |
1 |
1 |
3 |
4 |
5 |
7 |
6 |
х=6
1 |
2 |
3 |
4 |
5 |
7 |
7 |
1 |
1 |
3 |
4 |
5 |
6 |
7 |
Основные идеи методов сортировок с помощью выбора.-min эл.
В этом алгоритме основная идея заключается в том, чтобы на каждом проходе найти наименьший или наибольший элемент и поменять его с первым или последним не отсортированным элементом в зависимости от условия сортировки.
//Один из самых простых методов сортировки работает следующим образом: находим наименьший элемент в массиве и обмениваем его с элементом находящимся на первом месте, потом повторяем процесс со второй позиции в файле и найденный элемент обмениваем со вторым элементом и так далее пока весь массив не будет отсортирован. Этот метод называется сортировка выбором поскольку он работает циклически выбирая наименьший из оставшихся элементов.
Есть массив элементов |b1 b2 …|bi ..bn|
На некотором i-ом этапе сортировки среди элементов bi…bn выбирается эл bj с наименьшим ключом и он меняется местами с эл bi. В результате после выполнения н-1 этапов сортировки получаем отсортированный массив.
|b1 b2 …|bi ..bj bn|
Эта сортировка начинается с того, что отсортированная часть = 0.Заканчивается, когда в ее отсортированной части остается 1 элемент