- •Задание
- •Введение
- •Целью данной работы является изучение и практическая реализация различных алгоритмов сортировки, таких как сортировка расческой, быстрая сортировка и сортировка выбором, на языке программирования C#.
- •1 ХОД РАБОТЫ
- •1.1 Сортировка расческой
- •1.2 Быстрая сортировка
- •1.3 Сортировка выбором
- •2 АЛГОРИТМИЧЕСКАЯ СЛОЖНОСТЬ
- •Приложение А
- •Приложение Б
- •Приложение В
1 ХОД РАБОТЫ
1.1 Сортировка расческой
Сортировка расческой — это улучшенная версия пузырьковой сортировки. Вместо того, чтобы сравнивать только соседние элементы, этот алгоритм начинает с большого шага между элементами, который постепенно уменьшается. Шаг сравнения изначально большой, а затем уменьшается до 1 (как при пузырьковой сортировке). Это помогает быстрее перемещать большие и маленькие элементы к их правильным местам.
Шаг между сравниваемыми элементами лучше брать с учётом специальной величины, называемой фактором уменьшения, оптимальное значение которой равно примерно 1,247.
На рисунке 1.1 представлен результат работы программы.
Рисунок 1.1 — Сортировка расческой
В приложении А представлен код программы для сортировки расческой.
5
1.2 Быстрая сортировка
Общая идея алгоритма состоит в разделении входного набора данных относительно опорного элемента, выбираемого случайным образом. Все элементы, которые меньше опорного перемещаются в нижнюю часть массива, большие остаются на своих местах. В результате выполнения этих действий весь массив должен разделиться на три группы, следующие друг за другом: меньше опорного, равная опорному и больше опорного. Для «больших» и «меньших» отрезков рекурсивно выполняется та же последовательность действий.
На рисунке 1.2 представлен результат работы программы.
Рисунок 1.2 — Быстрая сортировка
В приложении Б представлен код программы для быстрой сортировки.
13
1.3 Сортировка выбором
Сортировка выбором — это простой алгоритм, который многократно находит минимальный элемент в неотсортированной части массива и меняет его местами с первым элементом этой части, тем самым постепенно формируя отсортированный массив.
На рисунке 1.3 представлен результат работы программы.
Рисунок 1.3 — Сортировка выбором
В приложении В представлен код программы для сортировки выбором. На рисунке 1.4 представлена блок схема для данной сортировки.
7
Рисунок 1.4 — Блок-схема
13
