TheAlgorithms/Python — образовательные реализации 300+ алгоритмов на Python

TL;DR: Заменяет псевдокод из учебников на рабочий Python-код — 300+ алгоритмов в 15 категориях, MIT-лицензия для обучения
Автор: TheAlgorithms⭐ 222,000

Ключевые возможности

Быстрый старт

1. `git clone https://github.com/TheAlgorithms/Python.git`
2. `cd Python && python sorts/bubble_sort.py`
3. `python -m pytest tests/test_sorts.py`
4. `pre-commit run --all-files`

Альтернативы

Стандартная библиотека Python: Оптимизировано для продакшена (например, 'sorted()' использует Timsort), но скрывает логику алгоритма
Rosetta Code: Реализации на многих языках, но качество нестабильно и нет CI-тестирования
LeetCode: Интерактивная платформа с лимитами по времени, но без образовательных пояснений
Algorithm Design Manual (Skiena): Учебник только с псевдокодом — нет исполняемого кода

Кому подходит

FAQ

Можно ли использовать эти реализации в продакшене?

Нет. Реализации ориентированы на образовательную ясность, а не на производительность. Для продакшена используйте встроенные функции Python (например, 'sorted()') или библиотеки вроде NumPy.

Как добавить новый алгоритм?

Форкните репо, добавьте реализацию в соответствующую директорию (например, 'math/'), добавьте тесты в 'tests/' и отправьте PR. Следуйте гайдлайнам в CONTRIBUTING.md.

Почему моего любимого алгоритма нет?

Проект приветствует контрибьюции! Проверьте DIRECTORY.md, чтобы убедиться, что его еще нет, а затем отправьте PR со своей реализацией.

Тестируются ли реализации?

Да. GitHub Actions запускает pytest на каждый PR для проверки корректности. Некоторые граничные случаи могут отсутствовать — контрибьюции приветствуются!

💡 Vibe Coding Tips

["При помощи пользователям с TheAlgorithms/Python:\n\n1. Образовательный фокус: Всегда объясняйте логику алгоритма (например, 'Пузырьковая сортировка сравнивает соседние элементы и меняет их местами, если они стоят не по порядку') перед показом кода. По возможности ссылайтесь на псевдокод из учебников.\n\n2. Запуск примеров: Используйте 'python <algorithm>.py' для простых случаев. Для алгоритмов, требующих ввода (например, 'dijkstra.py'), покажите, как модифицировать файл для добавления тестовых данных.\n\n3. Руководство по контрибьюции: Для PR"]

Открыть в Telegram