Проект призван структуризовать решения алгоритмических задач
Темы представлены в порядке изучения. Каждая тема изучается последовательно: теория → ручная реализация → задачи. Реализации и разборы добавляются только после проработки темы.
Структура проекта:
-
Сортировки
- Слиянием
src/main/java/com/morgachev/aleksey/algo/l01_sorts/mergeSortT0_MergeSortTheory.mdT1_Merge.javaT2_LeetCode_88.javaT2S_LeetCode_88.mdT3_MergeSort.javaT4_LeetCode_912.javaT4S_LeetCode_912.mdT5_LeetCode_21.javaT5S_LeetCode_21.mdT6_LeetCode_148.javaT6S_LeetCode_148.md
- Быстрая
src/main/java/com/morgachev/aleksey/algo/l01_sorts/quickSort
- Слиянием
-
Массивы и хеши
-
Два указателя
src/main/java/com/morgachev/aleksey/algo/l02_arrays_hashing/twoPointersT0_TwoPointersTheory.mdT1_Reverse.javaT2_LeetCode_344.javaT2S_LeetCode_344.mdT3_PalindromeCheck.javaT4_LeetCode_125.javaT4S_LeetCode_125.mdT5_LeetCode_680.javaT5S_LeetCode_680.mdT6_LeetCode_167.javaT6S_LeetCode_167.mdT7_LeetCode_15.javaT7S_LeetCode_15.mdT8_LeetCode_16.javaT8S_LeetCode_16.md
-
Скользящее окно
src/main/java/com/morgachev/aleksey/algo/l02_arrays_hashing/slidingWindow
-
-
Связные списки
src/main/java/com/morgachev/aleksey/algo/l03_linkedLists -
Бинарный поиск
src/main/java/com/morgachev/aleksey/algo/l04_binarySearch -
Стэк и очередь
src/main/java/com/morgachev/aleksey/algo/l05_stacksAndQueues -
Деревья
src/main/java/com/morgachev/aleksey/algo/l06_trees -
Графы
src/main/java/com/morgachev/aleksey/algo/l07_graphs -
Динамическое программирование
- Алгоритм Кадана
src/main/java/com/morgachev/aleksey/algo/l08_dynamicProgramming/kadanes - Задача о рюкзаке
src/main/java/com/morgachev/aleksey/algo/l08_dynamicProgramming/knapsack
- Алгоритм Кадана
Также представлены решения задач по Java с сайта CodeWars
src/main/java/com/morgachev/aleksey/algo/l00_codeWarsTasks
T1_HelloWorld.javaT1S_HelloWorld.mdT2_ObjectInArray.javaT2S_ObjectInArray.mdT3_ArrayAverage.javaT3S_ArrayAverage.mdT4_ReturnMessage.javaT4S_ReturnMessage.mdT5_ReturnStringNumber.javaT5S_ReturnStringNumber.mdT6_SurfaceAreaAndVolume.javaT6S_SurfaceAreaAndVolume.mdT7_FirstNonConsecutive.javaT7S_FirstNonConsecutive.mdT8_EvenCheck.javaT8S_EvenCheck.md
Технологии:
- Java 21
- Gradle (Kotlin DSL)
- JUnit 5
Запуск :
./gradlew build