Slowly moving (and improving) all content to this website
Data structures and common algorithms playground. As well as some theory notes. Only dependencies are STD library and MPI for parallel implementations. As always more an exercise for me to think their implementation rather than anything useful.
NOTE: Some theoretical content and ideas are from The Cherno YouTube channel. Likewise, other ideas are from this book.
More algorithm implementations on my LeetCode
- Complexity
- Bit manipulation
- Pointers
- Passing args to functions
- Memory Management
- C++ KeyWords
- Recursion
- Dynamic programming
- Competitive programming problems approach guide
- Binary search (& variants)
- Bubble Sort (Serial)
- Heap Sort (Serial)
- Quick Sort (Serial)
- Merge Sort (Parallel)
- Pre-order DFS
- In-order DFS
- Post-order DFS
- BFS
- BFS (Breath First Search)
- DFS (Depth First Search)
- Dijkstra (Expand lowest acquisition_cost node)
- Greedy (Expand lowest heuristic node)
- A* (Expand lowest heuristic + acquisition_cost node)
- Genetic algorithm
- Simulated Annealing
- Ant Colony
- Tabu Search
- Static Array (stack allocated). Usage example. STD implementation.
- Dynamic Array (heap allocated). Usage example. STD implementation.
- Singly Linked List. Usage example.
- Double Linked List
- Hash table. Usage example. STD implementation.
- Stack
- Queue
- BT (Binnary Tree)
- BST (Binnary Search Tree)
- Heap
- Trie
- Graph
If serial algorithm:
./run_serial.sh <path_to_cpp_file>
If parallel algorithm:
./run_parallel.sh <path_to_cpp_file> <processors_to_use>