Course on Algorithms and Data Structures by Alexander S. Kulikov. The course is taught at Academy of Modern Software Engineering. All slides and lecture notes are in Russian.
titleslideshandoutcontents
1. Introduction. pdf pdf Fibonacci numbers, sorting problem, big-O notation.
2. Divide-and-conquer algorithms. pdf pdf Multiplication, recurrence relations, matrix multiplication.
3. Fast Fourier transform. pdf pdf Alternative representation of polynomials, complex roots of unity, interpolation.
4. Decomposition of graphs. pdf pdf Depth-first search, connectivity in undirected graphs, topological sorting, strongly connected components.
5. Paths in graphs. pdf pdf Breadth-first search, Dijkstra's algorithm, shortest paths in the presence of negative edges.
6. Greedy algorithms. pdf pdf Activity-selection, Huffman encoding, set cover, vertex cover, SAT local search.
7. Dynamic Programming. pdf pdf Edit distance, knapsack, chain matrix multiplication, shortest reliable paths, all-pairs shortest paths, TSP, independent sets in trees.
Sources: