Содержание
- 2. Сортировка Фундаментальная алгоритмическая задача программирования Сортировка (общий случай) – процесс перегруппировки заданного множества объектов в определенном
- 3. Алгоритм сортировки Практически любой алгоритм сортировки можно разбить на 3 части: сравнение, определяющее упорядоченность пары элементов;
- 4. Оценка алгоритмов сортировки Время сортировки Память Устойчивость Естественность поведения
- 5. Классификация сортировок По различным признакам: по количеству использований операций сравнения по потребности в дополнительной памяти по
- 6. Внутренняя и внешняя сортировка Внутренняя сортировка (англ. internal sort) — сортировка данных, при которой оперативной памяти
- 7. Различия м\у внеш. и внутр. сортировкой Когда используются методы внутренней сортировки: Если сортируемый файл с данными
- 8. Алгоритмы сортировок Алгоритмы внутренней сортировки (элементарные методы) Сортировка выбором Сортировка вставкой Пузырьковая сортировка … Алгоритмы внутренней
- 9. Раздел Алгоритмы внутренней сортировки
- 10. Внутренняя сортировка Квадратичные и субквадратичные алгоритмы Сортировка выбором (SelectSort) Сортировка пузырьком (BubbleSort) и ее улучшения Сортировка
- 11. Сортировка выбором Шаги алгоритма: Находим минимальное значение в текущей последовательности. Производим обмен этого значения со значением
- 12. Метод сортировки выбором Неестественнен Неустойчив
- 13. Еще пример сортировки выбором Шаги алгоритма: Находим минимальное значение в текущей последовательности. Производим обмен этого значения
- 14. Код сортировка выбором
- 15. Сортировка пузырьком
- 16. Код сортировки пузырьком Сложность O(n2)
- 17. Модификации сортировки пузырьком Улучшение 1: запоминать производился ли на данном проходе какой-либо обмен Улучшение 2: запоминать
- 18. Сортировка пузырьком Выводы Среднее (оно же худшее) количество операций остается квадратичным. Дополнительная память, очевидно, не требуется
- 19. «Шейкер-сортировка»
- 20. Глупая сортировка Сложность O(n3)
- 21. Сортировка вставками
- 22. Код сортировки вставками Сложность O(n2)
- 23. Сортировка вставками со сторожевым элементом
- 24. Сортировка методом Шелла Общая схема метода состоит в следующем. Шаг 1. Происходит упорядочивание элементов n/2 пар
- 25. Сортировка Шелла Шаг 0: исходный массив Шаг 1: сортируем вставками 8 групп по 2 элемента Шаг
- 26. Модификации сортировки методом шелла (Седжвик) 8, 4, 2, 1 inc[s-1], если 3*inc[s] > size,…, 41, 19,
- 27. Код сортировки методом Шелла + Седжвик
- 28. Пример сортировка методом Шелла Демонстрация сортировки по неубыванию методом Шелла Альтернативная реализация сортировки методом Шелла
- 29. Сравнение времени сортировок коричневая линия: сортировка пузырьком; синяя линия: шейкер-сортировка; розовая линия: сортировка выбором; желтая линия:
- 30. Сложность O(n*log n) Сложность O(n2) Пирамидальная сортировка Сортировка выбором Вспомогательная структура, позволяющая выбирать максимальный элемент последовательности
- 31. Пирамида Пирамида (сортирующее дерево, двоичная куча) – двоичное дерево с упорядоченными листьями (корень дерева – наименьший
- 32. Просеивание Просеивание – это построение новой пирамиды по следующему алгоритму: новый элемент помещается в вершину дерева,
- 33. Алгоритм пирамидальной сортировки Алгоритм пирамидальной сортировки. Шаг 1. Преобразовать массив в пирамиду. Шаг 2. Использовать алгоритм
- 34. Фаза 1. пирамидальной сортировки Построение пирамиды Шаг.1 Шаг.2 Шаг.3 Шаг.4 Шаг.5
- 35. Код фазы 1. построение пирамиды
- 36. Фаза 2. Сортировка Алгоритм фазы 2: Меняем местами верхний и последний элементы «Забываем» про последний элемент
- 37. Код фазы 2. сортировка
- 38. Альтернативный код пирамидальной сортировки
- 39. Характеристики пирамидальной сортировки Построение пирамиды занимает O(n log n) Не использует дополнительной памяти Метод не является
- 40. Быстрая сортировка Хоара Дан массив x[n] размерности n. Шаг 1. Выбирается опорный элемент массива. Шаг 2.
- 41. Алгоритм (псевдокод)
- 42. Код быстрой сортировки Хоара
- 43. Пример
- 44. Пример быстрой сортировки (не симметричный вариант) 0. 0 1 2 3 4 5 6 7 1.
- 45. Важно 0. 1. 2.
- 46. Быстрая сортировка Общая схема: из массива выбирается некоторый опорный элемент a[i], запускается процедура разделения массива, которая
- 47. Алгоритм быстрой сортировки На входе массив a[0]...a[N] и опорный элемент p, по которому будет производиться разделение.
- 48. Пример быстрой сортировки (симметричный вариант) Псевдокод. quickSort ( массив a, верхняя граница N ) { Выбрать
- 49. Код быстрой сортировки
- 50. Характеристики быстрой сортировки Быстродействие: Средний случай: O(n log n) Худший случай: O(n2) Использует дополнительную память Метод
- 51. Сортировка слиянием Слияние – это объединение двух или более упорядоченных массивов в один упорядоченный. Алгоритм сортировки
- 52. Пример Демонстрация сортировки слиянием по неубыванию
- 53. Код сортировки слияние Сложность O(n*log n) Расходует дополнительную память. Не устойчив.
- 54. Иллюстрация работы разных алгоритмов сортировки www.sorting-algorithms.com/
- 55. Алгоритмы сортировки Сортировка пузырьком (англ. Bubble sort ) — сложность алгоритма: O(n2); для каждой пары индексов
- 56. Раздел Алгоритмы внешней сортировки
- 57. Алгоритмы внешней сортировки Прямое слияние Естественное слияние Многопутевое слияние Трехпутевое слияние
- 58. Прямое слияние Предположим, что имеется последовательный файл A, состоящий из записей a1, a2, ..., an. Для
- 59. Прямое слияние (шаг 1) В файле A хранятся числа: 8, 23, 5, 65, 44, 33, 1,
- 60. Прямое слияние (шаг 2)
- 61. Прямое слияние (шаг 3) Часть 1 Часть 2
- 62. Особенности прямого слияния В основной памяти требуется расположить всего лишь две переменные - для размещения очередных
- 63. Естественное слияние При использовании метода прямого слияния не принимается во внимание то, что исходный файл может
- 64. Естественное слияние (шаг 1)
- 65. Естественное слияние (шаг 2)
- 66. Особенности естественного слияния Число чтений/перезаписей файлов при использовании этого метода будет не хуже, чем при применении
- 67. Многопутевое слияние Процесс многопутевого слияния происходит также как и процесс простого прямого (двухпутевого) слияния. Единственное отличие:
- 68. Трехпутевое слияние
- 69. Трехпутевое слияние Шаг 4 Шаг 5
- 70. Трехпутевое слияние Шаг 6
- 71. Сбалансированное многопутевое слияние В основе метода внешней сортировки сбалансированным многопутевым слиянием является распределение серий исходного файла
- 72. Многопутевое слияние По мере увеличения длины серий вспомогательные файлы с большими номерами (начиная с номера n)
- 73. Улучшение эффективности внешней сортировки Чем более длинные серии содержит файл перед началом применения внешней сортировки, тем
- 75. Скачать презентацию