Об этом проекте
The Algorithms - Go — это открытый образовательный репозиторий, в котором реализовано множество алгоритмов и структур данных на языке программирования Go. Он является частью более крупного проекта The Algorithms и распространяется под лицензией MIT.
Репозиторий организует реализации по пакетам в нескольких областях:
- **Строки**: сопоставление с образцом Ахо-Корасик, комбинации, генетическая генерация строк и генерация скобочных последовательностей.
- **Математика**: числа Армстронга, битовые операции (подсчёт битов, быстрый обратный квадратный корень, код Грея), числа Каталана, факториал, числа Фибоначчи, НОД и геометрические вычисления.
- **Шифры**: шифр Цезаря и обмен ключами Диффи-Хеллмана.
- **Динамическое программирование**: размен монет, расстояние редактирования, задача о рюкзаке, наибольшая общая подпоследовательность, наибольшая возрастающая подпоследовательность, умножение цепочки матриц и другое.
- **Структуры данных**: LRU- и LFU-кэши, двусторонняя очередь (deque) и динамический массив.
- **Сжатие**: кодирование Хаффмана для кодирования и декодирования.
- **Преобразование**: Base64, двоично-десятичное, римские цифры и преобразования цветов RGB/hex.
- **Контрольные суммы**: CRC8 и алгоритм Луна.
- **Раскраска графов**: проверка двудольности и алгоритмы раскраски графов.
Проект ориентирован на начинающих и следует лучшим практикам. Он включает тесты для многих реализаций, непрерывную интеграцию через GitHub Actions и отчётность о покрытии кода через Codecov. Предоставлены рекомендации по участию для тех, кто хочет добавить новые алгоритмы или улучшить существующие. В репозитории также поддерживается сообщество Discord для обсуждений и поддержки.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.