Об этом проекте

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