Репозиторчик по алгоритмам на Kotlin’е

от автора

В конце ноября или все таки в начале декабря, точно уже не вспомню, я решил освежить свою память и повторить алгоритмы и структуры данных, порешать простенькие задачки, попить кофе и вспомнить какие бывают сортировки и что такое вообще граф или связанный список.

В тот момент я хотел сделать что-нибудь полезное для других людей. И поэтому я решил объединить эти две цели и сделать репозиторий, который содержит в себе самые распространенные и простые алгоритмы.

Выбрал я Kotlin, потому что я использую его каждый день в своей работе и он меня очень сильно радует и восхищает своей элегантностью, выразительностью и лаконичностью.

Содержание моего репозиторчика следующее:

  • структуры данных — сюда я запихал графы, связанные списки, динамические массивы, min и max-кучи и еще что-то, все не помню

  • алгоритмы сортировки — наверно одна из самых излюбленных вещей, здесь вы найдете вашу любимую сортировку пузырьком, а также другие знакомые вам

  • алгоритмы поиска — здесь ничего нового, линейный и двоичный (также я добавил двоичный с рекурсией и реализовал методы для поиска правой или левой границы, почитайте комменты)

  • паттерны проектирования — ну без этого никак 🙂

Несколько дней назад я добавил мой проект на Reddit и англоязычные прогеры меня попросили перевести на их родной язык и поэтому в исходниках вы увидете два пакета ru и en.

Когда мне было не лень, я добавлял к каждому классу, методу или файлу описание алгоритма или паттерна в виде комментариев.

Про тесты чуть не забыл! Я еще никогда не писал столько тестов. ))

Почти 100%-ая покрываемость, за исключением одного теста, который я не дописал для улучшенной сортировки пузырьком :))

Желаю всем хорошего кода и обязательно загляните в мой репозиторий, возможно у вас есть идея как его улучшить или добавить что-нибудь еще, я открыт к этому и прошу вас пишите конструктивные комментарии)

Ссылка на Github репозиторчик


ссылка на оригинал статьи https://habr.com/ru/post/648265/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *