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
- Search Algorithms
- Graph Algorithms
- Hashing Algorithms
- Randomized Algorithms
- Number Theory and Cryptography Algorithms
- Optimization Algorithms
- Genetic Algorithms
- Dynamic Programming
- Linear Programming
- 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
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
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.