Implementation of some classical computer science algorithms in kotlin
- Max-Heap
- Binary Search Tree
- Sorting Algorithms (heap-sort, merge-sort, quick-sort and radix-sort)
- Quick Select Algorithm (to find the kth smallest element in an unordered list)
- Backtracking (for generating subsets, permutations, solving sudoku, etc.)
- Dynamic Programming (for calculating edit distance, longest common subsequence, etc)
- 0/1 Knapsack Problem, Integer Partition (Multiset of Integers) Problem
- Graphs (BSF, DSF, all connected components, finding paths, edge classification, topological sorting)