← 返回首页
GitHub - ergon73/python-sorting-algorithms: Реализация пяти классических алгоритмов сортировки на Python (Bubble, Quick, Selection, Insertion, Merge) с unit-тестами · GitHub
Skip to content

Navigation Menu

Toggle navigation
Sign in
Appearance settings
Search or jump to...

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Include my email address so I can be contacted

Saved searches

Use saved searches to filter your results more quickly

Appearance settings
Resetting focus

ergon73/python-sorting-algorithms

Go to file
Code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
View all files

Repository files navigation

More items

Алгоритмы сортировки на 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

No releases published

Packages

 
 
 

Contributors

Languages

Footer

© 2026 GitHub, Inc.