Algorithm Templates is a curated collection of algorithm implementations in C++, focusing on various fundamental and advanced data structures, dynamic programming problems, encoding algorithms, and sorting techniques. This project is designed to provide a practical reference for students, educators, and software developers interested in learning or teaching algorithmic concepts.
This section includes implementations of essential data structures:
- AVL Tree: Self-balancing binary search tree.
- Binary Search Tree (BST): Basic BST operations.
- Heap: Max and min heap implementations.
- Graph: Graph implemented using adjacency list and matrix.
- Queue: Queue implemented using nodes and vectors.
- Stack: Stack implemented using nodes and vectors.
Dynamic programming solutions for various classic problems:
- Backpack Problems: Different variations like classic, continuous, limited, and infinity backpack.
- Editorial Distance: Compute the editorial distance with full or part of the output.
- Greatest Increasing Sequence: Solutions with O(n^2) and O(nlogn) complexities.
- Placement of Signs: Find the placement of signs with full or partial output.
- Gray Code: Implementation of the Gray Code encoding algorithm.
Implementations of various sorting techniques:
- Counting Sort: Stable and unstable versions.
- Heap Sort: Standard heap sort implementation.
- Insertion Sort: Basic insertion sort.
- Merge Sort: Classic merge sort algorithm.
- Quick Sort: Quick sort with median and middle pivots.
- Radix Sort: LSD and MSD radix sort implementations.
- Binary Search: Implementations of left and right binary search.