GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles
  • Enterprises

This view

  • Original page
  • New address

GeezerVison is showing github.com — GitHub - ergon73/python-sorting-algorithms: Реализация пяти классических алгоритмов сортировки на Python (Bubble, Quick, Selection, Insertion, Merge) с unit-тестами

BranchesTags
Open more actions menu

Latest commit

 

History

2 Commits
2 Commits

Folders and files

NameName
Last commit message
Last commit date
sorting
sorting
 
 
tests
tests
 
 
.cursorrules
.cursorrules
 
 
.gitattributes
.gitattributes
 
 
README.md
README.md
 
 
genai-readme.md
genai-readme.md
 
 
human-readme.md
human-readme.md
 
 
input.txt
input.txt
 
 
main.py
main.py
 
 

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 (стандартная библиотека)
  • Без внешних зависимостей

Автор

  • Георгий Белянин (Georgy Belyanin)
  • [email protected]

Контекст

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

About

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

Topics

algorithmsbubble-sort-algorithmdata-structuresinsertion-sort-algorithmmerge-sort-algorithmpythonquick-sort-algorithmselection-sort-algorithmsorting-algorithms

Resources

Readme
Activity

Stars

0 stars

Watchers

0 watching

Forks

0 forks
Report repository

Releases

Packages

Contributors

Languages

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.