Open Source

Algorithms

A comprehensive educational repository covering fundamental algorithm paradigms — from sorting and divide & conquer to dynamic programming, backtracking, and parallel computing.

View Repository Browse Javadoc
8
Topics
Java
Language
JUnit 5
Testing
MIT
License

Algorithm Topics

Eight comprehensive modules, from foundations to advanced parallel techniques.

🚀
Introduction
Big-O notation, data structures, linear & binary search, recursion fundamentals and problem-solving patterns.
Foundations
📊
Sorting Algorithms
Bubble, Insertion, Selection, Quicksort, Mergesort, Heapsort, Radix, Shell and more — with complexity analysis.
O(n log n)
✂️
Divide & Conquer
Binary search, Fibonacci, GCD, vector operations, median, mode and maximum-sum subarray.
Recursive
🧩
Dynamic Programming
Knapsack 0/1, coin change, combinations, river travel optimisation — memoisation vs tabulation.
Optimal
💰
Greedy Algorithms
Coin change, knapsack variants, file-disk optimisation, agent-task assignment — optimal & sub-optimal.
Heuristic
Backtracking
N-Queens, chess horse paths, permutations, subsets with given sum — systematic search with pruning.
Exponential
🌳
Branch & Bound
Eight Puzzle, rectangle placement, agent assignment — intelligent search with cost bounding.
Optimisation
Parallel Algorithms
Fork/Join framework, recursive task decomposition, work-stealing, parallel array & file operations.
Concurrent