Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Алгоритмы сортировки на Python

Реализация пяти классических алгоритмов сортировки на чистом Python без внешних зависимостей.

Алгоритмы

  1. Bubble Sort — пузырьковая сортировка с оптимизацией диапазона проверки
  2. Quick Sort — быстрая сортировка методом «разделяй и властвуй»
  3. Selection Sort — сортировка выбором минимального элемента
  4. Insertion Sort — сортировка вставками со сдвигом элементов
  5. Merge Sort — сортировка слиянием с рекурсивным разделением

Структура проекта

├── main.py                  # Демонстрация работы всех алгоритмов
├── sorting/
│   ├── __init__.py
│   ├── bubble_sort.py       # Пузырьковая сортировка
│   ├── quick_sort.py        # Быстрая сортировка
│   ├── selection_sort.py    # Сортировка выбором
│   ├── insertion_sort.py    # Сортировка вставками
│   └── merge_sort.py        # Сортировка слиянием
└── tests/
    ├── __init__.py
    └── test_sorting.py      # Unit-тесты для всех алгоритмов

Запуск

python main.py

При запуске скрипт предлагает выбрать источник данных для массива:

  1. Ввод чисел через пробел с клавиатуры.
  2. Чтение целых чисел из текстового файла .txt, в котором числа разделены пробелами.

Пример вывода

Исходный массив: [5, 7, 4, 3, 8, 2]

Пузырьковая сортировка (Bubble Sort): [2, 3, 4, 5, 7, 8]
Быстрая сортировка (Quick Sort): [2, 3, 4, 5, 7, 8]
Сортировка выбором (Selection Sort): [2, 3, 4, 5, 7, 8]
Сортировка вставками (Insertion Sort): [2, 3, 4, 5, 7, 8]
Сортировка слиянием (Merge Sort): [2, 3, 4, 5, 7, 8]

Тестирование

python -m pytest tests/ -v

или без pytest:

python -m unittest discover -s tests -v

Тесты покрывают: пустой список, один элемент, отсортированный массив, обратный порядок, дубликаты, отрицательные числа, иммутабельность входных данных.

Технологии

  • Python 3.10+
  • unittest (стандартная библиотека)
  • Без внешних зависимостей

Автор

Контекст

Домашнее задание к уроку OD03 «Алгоритмы сортировки» курса «Программист на Python с нуля» (Zerocoder). Тема 13 — Основы алгоритмов и структур данных.

About

Реализация пяти классических алгоритмов сортировки на Python (Bubble, Quick, Selection, Insertion, Merge) с unit-тестами

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages