- •1. Алгоритмическая сложность. Понятие алгоритма. Формы записи. Асимптотический анализ.
- •2. Алгоритмы поиска. Линейный и бинарный поиск
- •3. Поиск подстроки в строке: основные понятия (постановка задачи, алфавит, цепочки). Простой поиск.
- •4. Поиск подстроки в строке: основные понятия (постановка задачи, алфавит, цепочки). Алгоритм Рабина-Карпа.
- •5. Поиск подстроки в строке. Алгоритм Кнута-Мориса-Пратта
- •8. Линейные структуры данных. Списки. Связный и двусвязный списки.
- •9. Линейные структуры данных. Очереди. Кольцевые очереди. Стеки. Деки. Алгоритм сортировочной станции.
- •10. Ассоциативные массивы и хэш-таблицы.
- •11. Деревья. Дерево поиска и бинарное дерево поиска. Основные понятия
- •12. Сбалансированные деревья. Основные понятия. Малый и большой повороты дерева. Обходы дерева
- •13. Сбалансированные деревья. Авл-деревья. Алгоритм добавления нового узла
- •14. Сбалансированные деревья. Авл-деревья. Алгоритм удаления существующего узла
- •15. Сбалансированные деревья. Красно-чёрные деревья. Алгоритм добавления нового узла
- •Вставка
- •16. Сбалансированные деревья. Красно-чёрные деревья. Алгоритм удаления существующего узла
- •17. Сбалансированные деревья. B-деревья. 2-3-4 деревья. Основные понятия
- •Свойства
- •18. Сбалансированные деревья. 2-3-4 деревья. Алгоритм добавления нового ключа
- •19. Сбалансированные деревья. 2-3-4 деревья. Алгоритм удаления существующего узла
- •20. Сортировка сравнениями. Пузырьковая сортировка (bubble)
- •21. Сортировка сравнениями. Сортировка вставками (insertion)
- •22. Сортировка сравнениями. Селекционная сортировка (selection)
- •23. Сортировка «разделяй и властвуй». Сортировка слияниями (merge-sort)
- •24. Сортировка «разделяй и властвуй». Быстрая сортировка (quick-sort)
- •25. Сортировка с использованием деревьев. Пирамидальная сортировка (heap-sort)
- •26. Поразрядные, блочные сортировки и сортировка подсчётом.
- •28. Графы. Построение минимального остовного дерева. Алгоритм Прима
- •29. Графы. Построение минимального остовного дерева. Алгоритм Крускала
20. Сортировка сравнениями. Пузырьковая сортировка (bubble)
Алгоритм сортировки — это алгоритм для упорядочивания элементов в списке. В случае, когда элемент списка имеет несколько полей, поле, служащее критерием порядка, называется ключом сортировки.
Алгоритмы, использующие для сортировки сравнение элементов между собой, называются основанными на сравнениях. Минимальная трудоемкость худшего случая для этих алгоритмов составляет, но они отличаются гибкостью применения.
Пузырьковая сортировка (bubble):
Сортировка простыми обменами, сортиро́вка пузырько́м (bubble sort) — простой алгоритм сортировки, для понимания и реализации — простейший, но эффективен он лишь для небольших массивов.
Алгоритм
состоит из повторяющихся проходов по
сортируемому массиву. За каждый проход
элементы последовательно сравниваются
попарно и, если порядок в паре неверный,
выполняется обмен элементов. Проходы
по массиву повторяются {\displaystyle
N-1}
раз
или до тех пор, пока на очередном проходе
не окажется, что обмены больше не нужны,
что означает — массив отсортирован.
При каждом проходе алгоритма по
внутреннему циклу, очередной наибольший
элемент массива ставится на своё место
в конце массива рядом с предыдущим
«наибольшим элементом», а наименьший
элемент перемещается на одну позицию
к началу массива («всплывает» до нужной
позиции, как пузырёк в воде — отсюда
и название алгоритма).
21. Сортировка сравнениями. Сортировка вставками (insertion)
Алгоритм сортировки — это алгоритм для упорядочивания элементов в списке. В случае, когда элемент списка имеет несколько полей, поле, служащее критерием порядка, называется ключом сортировки.
Алгоритмы, использующие для сортировки сравнение элементов между собой, называются основанными на сравнениях. Минимальная трудоемкость худшего случая для этих алгоритмов составляет, но они отличаются гибкостью применения
Сортировка вставками (англ. Insertion sort) — алгоритм сортировки, в котором элементы входной последовательности просматриваются по одному, и каждый новый поступивший элемент размещается в подходящее место среди ранее упорядоченных элементов. Сложность алгоритма:
На
вход процедуре сортировки подаётся
массив
,
состоящий из элементов
последовательности
которые
требуется отсортировать. n соответствует
—
размеру исходного массива. Для сортировки
не требуется привлечения дополнительной
памяти, кроме постоянной величины для
одного элемента, так как выполняется
перестановка в пределах массива. В
результате работы процедуры во входном
массиве оказывается требуемая выходная
последовательность элементов.
22. Сортировка сравнениями. Селекционная сортировка (selection)
Алгоритм сортировки — это алгоритм для упорядочивания элементов в списке. В случае, когда элемент списка имеет несколько полей, поле, служащее критерием порядка, называется ключом сортировки.
Алгоритмы, использующие для сортировки сравнение элементов между собой, называются основанными на сравнениях. Минимальная трудоемкость худшего случая для этих алгоритмов составляет , но они отличаются гибкостью применения
Сортировка выбором (Selection sort) — алгоритм сортировки.. На массиве из элементов имеет время выполнения в худшем, среднем и лучшем случае , предполагая что сравнения делаются за постоянное время.
Алгоритм:
находим номер минимального значения в текущем списке
производим обмен этого значения со значением первой неотсортированной позиции (обмен не нужен, если минимальный элемент уже находится на данной позиции)
теперь сортируем хвост списка, исключив из рассмотрения уже отсортированные элементы
