An open API service indexing awesome lists of open source software.

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

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)

Быстрая сортировка - это эффективный алгоритм сортировки, который использует стратегию "разделяй и властвуй". Он выбирает элемент, называемый "опорным", и сортирует список так, чтобы все элементы, меньшие опорного, были перед ним, а все элементы, большие опорного, были после него.


**Этот процесс затем повторяется для подсписков, которые образуются слева и справа от опорного элемента.**