This page contains resources about Algorithms and Theory of Computation in general.
More specific information is included in each subfield.
Subfields and Concepts
See Category:Algorithms for some of its subfields.
- Divide and Conquer Algorithm
- Sorting Algorithms
- Simple sorts
- Insertion sort
- Selection sort
- Efficient sorts
- Merge sort
- Heapsort
- Quicksort
- Bubble sort and variants
- Bubble sort
- Shellsort
- Comb sort
- Distribution sort
- Counting sort
- Bucket sort
- Radix sort
- Simple sorts
- Search Algorithms
- Breadth First Search (BFS)
- Depth First Search (DFS)
- Graph Algorithms
- Minimum Spanning Tree
- Hashing Algorithms
- Randomized Algorithms
- Number Theory and Cryptography Algorithms
- Chinese Remainder Theorem
- Quantum Algorithms
- Game Theory Algorithms
- Optimization Algorithms
- Genetic Algorithms
- Greedy Algorithms
- Dynamic Programming / Optimal Control
- Linear Programming
- Travelling Salesman Problem (TSP)
- Shortest Path Problem
- Dijkstra's Algorithm
- Bellman–Ford Algorithm
- A* search Algorithm
- Floyd–Warshall Algorithm
- Johnson's Algorithm
- Viterbi Algorithm
- Machine Learning Algorithms
- Data Compression Algorithms
- Algorithms on Strings
- Digital Signal Processing Algorithms
- NP-Completeness and Approximation Algorithms
- External Memory Algorithms
- Computational Complexity Theory
- Automata Theory
- Turing Machine / Type-0 Grammar
- Finite State Machine (FSM)
- Pushdown Automaton (PDA)
Online Courses
Video Lectures
Lecture Notes
- Algorithms by Piotr Idyk
- Algorithms by Jeff Erickson
- Design and Analysis of Algorithms by Dana Moshkovitz and Bruce Tidor
- Automata, Computability and Complexity by Scott Aaronson
- Introduction to Theory of Computation by Anil Maheshwari and Michiel Smid
Books
See also Further Reading.
- Skiena, S. S., & Revilla, M. A. (2003). Programming challenges: The programming contest training manual. Springer Science & Business Media.
- Cormen, T. H. (2009). Introduction to Algorithms. 3rd Ed. MIT Press.
- Sedgewick, R. (2011). Algorithms. 4th Ed. Pearson Education.
- Knuth, D. E. (2011). The Art of Computer Programming, Volumes 1-4A. Addison-Wesley Professional.
- Sipser, M. (2012). Introduction to the Theory of Computation. 3rd Ed. Cengage Learning.
Software
- C++ Algorithms, Problems & Programming Examples
- Searching and Sorting Algorithms via C#
- C-Sharp-Algorithms - Github
- pygorithm - Python (Github)
- TheAlgorithms - C++, Python, Java, C#, C, Scala, Go, Javascript, Ruby (Github)
- EZ Collections, EZ Life - Java
- CompetitiveProgramming - C++ (Github)