https://github.com/innosan/secsemcoursework
Sorting algorythms for course work
https://github.com/innosan/secsemcoursework
Last synced: about 1 year ago
JSON representation
Sorting algorythms for course work
- Host: GitHub
- URL: https://github.com/innosan/secsemcoursework
- Owner: Innosan
- Created: 2024-04-03T19:36:02.000Z (about 2 years ago)
- Default Branch: master
- Last Pushed: 2024-09-26T01:33:34.000Z (over 1 year ago)
- Last Synced: 2025-03-14T03:45:01.027Z (about 1 year ago)
- Language: C++
- Size: 38.1 KB
- Stars: 0
- Watchers: 2
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## Курсовая работа второго семестра
#### Задача - реализовать алгоритмы сортировки в массиве
##### Подзадача - Упорядочить в каждом значении чисел матрицы цифры по возрастанию, затем упорядочить данные в столбцах по убыванию.
---
#### Структура проекта:
- Menu - класс для работы пользователя с программой
- Sort - классы сортировок
- BubbleSort - сортировка пузырьком
- SelectionSort - сортировка выбором
- InsertionSort - сортировка вставками
- ShellSort - сортировка Шелла
- QuickSort - быстрая сортировка
- Utils - вспомогательные функции
- Files - работа с файлами
- Inputs - ввод данных
- Tables - вывод таблиц
---
#### Сортировки:
- [Сортировка пузырьком](#сортировка-пузырьком)
- [Сортировка выбором (отбора)](#сортировка-выбором)
- [Сортировка вставками](#сортировка-вставками)
- [Сортировка Шелла](#сортировка-шелла)
- [Быстрая сортировка: pivot - конечный элемент](#быстрая-сортировка)
---
## Сортировка пузырьком
[Подробнее](https://www.geeksforgeeks.org/bubble-sort/) | [Видео](https://www.youtube.com/watch?v=62Ai0p1xUpE) | [Код](/Sort/BubbleSort/BubbleSort.h)
Многократно проходим по списку, сравниваем каждую пару соседних элементов и меняем их местами, если они в неправильном порядке.
**Этот процесс повторяется, пока список не будет отсортирован.**
---
## Сортировка выбором
[Подробнее](https://www.geeksforgeeks.org/selection-sort/) | [Видео](https://youtu.be/Q-NXg6Tzyks?si=QR_chDHej30MmWIW) | [Код](/Sort/SelectionSort/SelectionSort.h)
На каждом шаге выбираем наименьший (или наибольший, в зависимости от порядка сортировки) элемент из неотсортированных элементов и помещаем его в конец отсортированной части списка.
**Этот процесс повторяется, пока все элементы не будут отсортированы.**
---
## Сортировка вставками
[Подробнее](https://www.geeksforgeeks.org/insertion-sort/) | [Видео](https://youtu.be/PEhwXHEPbmI?si=VyOExxp2uIWa15y0) | [Код](/Sort/InsertionSort/InsertionSort.h)
На каждом шаге берем следующий элемент из неотсортированной части списка и вставляем его на правильное место в отсортированной части списка.
**Этот процесс повторяется, пока все элементы не будут отсортированы.**
---
## Сортировка Шелла
[Подробнее](https://www.geeksforgeeks.org/shellsort/) | [Видео](https://youtu.be/IViqgakt-Eg?si=xBB_LbGcBvKaiWvj) | [Код](/Sort/ShellSort/ShellSort.h)
Улучшенная версия сортировки вставками, которая сначала сортирует элементы с определенным интервалом, а затем уменьшает интервал и повторяет процесс, пока интервал не станет равным одному.
**В этот момент алгоритм становится сортировкой вставками.**
---
## Быстрая сортировка
[Подробнее](https://www.geeksforgeeks.org/quick-sort/) | [Видео](https://youtu.be/scqHvAIZkhw?si=Gr_zm305M7_JRiN_&t=47) | [Код](/Sort/QuickSort/QuickSort.h)
Быстрая сортировка - это эффективный алгоритм сортировки, который использует стратегию "разделяй и властвуй". Он выбирает элемент, называемый "опорным", и сортирует список так, чтобы все элементы, меньшие опорного, были перед ним, а все элементы, большие опорного, были после него.
**Этот процесс затем повторяется для подсписков, которые образуются слева и справа от опорного элемента.**