This is a sincere effort to learn all the computer programming fundamentals that I had learnt and forgotten or never learnt. Planning to begin learning from the core fundamentals and slowly move to advanced topics.
Disclaimer: Please note, Most if not all of the material is something I have gleaned from the internet. I have tried to add the links in the References section. If I have missed anything, please let me know so that I am not infringing on any copyright.
- Home
- Data Structures
- Static Arrays
- Vectors/Dynamic Arrays
- Lists
- Stacks
- Priority Queues
- Hash Tables
- Binary Search Trees
- Red-Black Trees
- AVL Trees
- Trie
- Segment Tree
- Suffix Tree
- B Trees
- kd Trees
- Bloom Filters
- Disjoint Set Data structures
- Fibonacci Heap
- Skip Lists
- Algorithms
- Basic Sorting Algorithms
- Insertion Sort
- Selection Sort
- Heap Sort
- Shuffling
- Selection -> TBD
- Divide and Conquer
- Binary Search
- MergeSort
- Quick Sort
- 3 way Quick Sort (Dijkstra)
- Straseen Matrix Multiplication
- Recursion
- Substituion Method
- Recursion Method
- Master's Theorem
- Graph Algorithms
- Breadth-First Search
- Depth First Search
- Topological Sort
- Minimum Spanning Trees
- Kruskals MST
- Prims MST
- Shortest Path
- Bellman Ford Single Source
- Dijkstra's Single Source
- Floyd-Warshall All-Pairs
- Johnson All-Pairs
- Maximum Flow
- Ford-Fulkerson method
- Maximum bi-partite matching
- Greedy Algorithms
- Activity Selection Problem
- Huffman Codes
- String Matching
- Native Pattern Searching
- Robin-Karp
- Knuth-Morris-Prat
- Finite Automata
- Boyes Moore
- Back Tracking
- Dynamic Programming
- Computational Geometry
- Convex Hull
- Jarvis March
- Graham Scan
- Closest Pair of points
- Line segment intersection
- Convex Hull
- NP Completeness
- Bit Manipulations
- Basic Sorting Algorithms
- C++ Fundamentals
- [References]