A Curated List of Algorithms Resources
General
- Introduction to Algorithms - MIT 6.006 2011
- Design and Analysis of Algorithms - MIT 6.046J 2015
- Introduction to Algorithms - MIT 6.046J 2005
- Advanced Algorithms - MIT 6.854J 2008
- Randomized Algorithms - MIT 6.856J 2002
- Distributed Algorithms - MIT 6.852J 2009
- Introduction to Algorithms - York College CS 360
- Skiena’s Algorithms Lectures
- Discrete Mathematics in Computer Science - Dartmouth College
- Parallel and Sequential Data Structures and Algorithms - Carnegie Mellon University. Since summer of 2013, the course is taught from the book Algorithm Design: Parallel and Sequential.
- Algorithms and Data Structures - McGill University COMP 251
- Design and Analysis of Computer Algorithms - University of Maryland CMSC 451
- Algorithms: Design and Analysis
- Algorithms: Design and Analysis II
- Algorithms, Part I
- Algorithms, Part II
- Algorithms - Jeff Erickson
- OpenDSA
- Uri Zwick - Tel Aviv University
- Approximation Algorithms - Chandra Chekuri
- Tim Roughgarden Lectures
- Algorithms - Carnegie Mellon University 15-451/651 2012
Practice
Blogs
Solutions
- CLRS Solutions
- ladamalina/coursera-algo
- aistrate/AlgorithmsSedgewick
- rhapsodyai/AlgorithmDesignManual
- reneargento/algorithms-sedgewick-wayne
- Quiz 2 - MIT 6.006 Fall 07
- Quiz 2 - MIT 6.006 Spring 08
- All Exercises and Solutions - Ecole Polytechnique
- Practice Problems Solutions - Dalhousie University CSCI 3110
- Homeworks and Handouts - University of Maryland CMSC 451
- Algorithms and Complexity - KTH DD2354
- SSQ/Coursera-Stanford-Algorithms-Specialization
- yusufcakal/algorithms
- deepak-malik/Data-Structures-In-Java
- Erdos-Graph-Framework/Erdos
- pedrovgs/Algorithms
- jeandersonbc/algorithms-and-ds
- psjava/psjava
- asmolich/algorithms
- phishman3579/java-algorithms-implementation
- jpa99/Algorithms
- skseth/algorithms
- harshitkgupta/algorithms
- teddyrendahl/stanford-algs
- sestus/algorithms-stanford
- LeslieK/AlgoClass
- vkostyukov/scalacaster
- pathikrit/scalgos
- shaiwalsachdev/Algorithms—Stanford-University
- Ziang-Lu/Coursera-Algorithms
- HuangLiPang/Stanford-University-Algorithms
- fgarcialainez/Stanford-Algorithms-1
- fgarcialainez/Stanford-Algorithms-2
Asymptotic Analysis
- A Gentle Introduction to Algorithm Complexity Analysis
- Master Theorem
- Assignment 1 Solutions - Dalhousie University CSCI 3110
- Assignment 2 Solutions - Dalhousie University CSCI 3110
- Worst-Case Analysis of Set Union Algorithms - Tarjan
Divide-and-Conquer
- Solving Divide-and-Conquer Recurrences - Adamchik
- Finding the Closest Pair of Points on the Plane
- Assignment 6 Solutions - Dalhousie University CSCI 3110
Probability
Selection
- Finding Second Largest Element in an Array - University of Maryland
- Kth Smallest Element
- Assignment 7 Solutions - Dalhousie University CSCI 3110
Graphs
General
- Topological Sort
- Solving 2-List Coloring (by Reducing to 2-SAT)
- Episode 24 - 2SAT
- Graph Contraction and Connectivity - Carnegie Mellon University
- Assignment 3 Solutions - Dalhousie University CSCI 3110
- Assignment 4 Solutions - Dalhousie University CSCI 3110
- Assignment 5 Solutions - Dalhousie University CSCI 3110
- Everything about Bottleneck Spanning Tree
- Spanning Trees Exercises Solutions - Ecole Polytechnique
- B Trees - University of Craiova
- Depth-First Search and Linear Graph Algorithms - Tarjan
Shortest Paths
- A Note on Practical Construction Of Maximum Bandwidth Paths - Malpani+Chen
- A Practical Shortest Path Problem with Linear Expected Time - Goldberg
- Bottleneck Spanning Tree Homework - Cheng
- Faster Algorithms for the Shortest Path Problem
- Graph Algorithms II
- Implementations of Dijkstra’s Algorithm Based on Multi-Level Buckets - Goldberg+Silverstein
- Rec 16 - MIT 6.006 Spring 11
- On the Bottleneck Shortest Path Problem - Kaibel+Peinhardt
- Practical Efficiency of the Linear-time Algorithm for the Single Source Shortest Path Problem - Asano+Imai
- Undirected Single Source Shortest Paths in Linear Time - Thorup
- T-joins and Applications
- Shortest Path Algorithms - Goddyn
- Shortest Paths - Ahuja
- Dijkstra’s Algorithm with Simple Buckets - MIT 15.082J
- Modifying Dijkstra’s Algorithm for Edge Weights Drawn from Range
- Dijkstra’s Algorithm for Edge Weights in Range
- Accelerating Johnson’s All-Pairs Shortest Paths Algorithm on GPU
- Solving All Pairs Shortest Paths in Parallel
Matroids
Circuits
Hashing
- Probability Calculations in Hashing
- Hashing - Bebis
- Universal Hashing- Minimizing Collisions
- Universal Classes of Hash Functions - Carter+Wegman
Dynamic Programming
- MWIS in a Tree - Chen+Kuo+Sheu
- The Knapsack Problem - MIT 6.006
- Optimal BST - Carnegie Mellon University
- Optimal BST - University of Craiova
- Space-Efficient Alignment - Carnegie Mellon University
- Exercise3+4 Solutions - CTH
- Dynamic Programming I - Carnegie Mellon University
Strings
- Faster Suffix Sorting - Larsson+Sadakane
- How the Burrows-Wheeler Transform Works
- Suffix tree. Basics. Building in O(nlogn)
- Great resource for string algorithms
- Suffix tree. Ukkonen’s algorithm
- Trie - University of Craiova
NP-Complete
- What are the Differences between NP, NP-Complete and NP-Hard - Stack Overflow
- The Traveling Salesman Problem - University of Crete
- Traveling Salesperson: The Most Misunderstood Problem
- Polynomial Time Approximation Schemes for Euclidean Traveling Salesman and other Geometric Problems - Arora
- Notes on NP Completeness - Schwartz
- Maximum Matching in Bipartite and Non-Bipartite Graphs - Zwick
- Maximum Independent Set Problem - Chekuri
- The Traveling Salesperson Problem - Chekuri
- The Traveling Salesperson Problem - Roughgarden
- The An-Kleinberg-Shmoys Algorithm for the TSP - Carnegie Mellon University
- Design and Analysis of Algorithms (#24) - Panigrahi
- Approximating the Minimum Degree Spanning Tree - Furer
- The P vs. NP Problem - Cook
- Dynamic Programming for Minimum Steiner Trees
- Steiner Tree NP-Completeness Proof - Santuari
- Graph Algorithms - Panigraphi
- Combinatorial Optimization - MIT 18.453
- Steiner Trees - Utrecht University
- Efficient algorithms for Steiner Tree Problem - Meng
- Comparing Between Different Approaches to Solve the 0/1 Knapsack Problem
- Longest Path in a DAG - Khan
- How Easy is Local Search - Johnson+Papadimitriou+Yannkakis
- The Capacitated Max K-Cut Problem - Gaur+Krishnamurti+Kohli
- An Overview of What We Can and Cannot Do with Local Search - Christopoulos+Zissimopoulos
- Approximation Algorithms - Dinitz
- Approximation Algorithms (2011) - Chekuri
- Lec-24 Traveling Salesman Problem(TSP) - IIT Madras
- Design and Analysis of Algorithms (#16) - Panigrahi
- Approximation Algorithms (2011) - Chekuri
- Greedy Approximation - University of Maryland
- Approximation Algorithms - University of Maryland
- Approximation Algorithms - Zadeh
- Approximation Algorithms - Warnow
- TSP Heuristics - Leading Methods, Implementations and Latest Advances
Lectures 24 through 27 are all related to TSP.