This note will cover
classic and modern algorithmic ideas that are central to many areas of Computer
Science. The focus is on most powerful paradigms and techniques of how to design
algorithms, and measure their efficiency. The topics will include hashing,
sketching, dimension reduction, linear programming, spectral graph theory,
gradient descent, multiplicative weights, compressed sensing, and others.
This is an intermediate algorithms course note
with an emphasis on teaching techniques for the design and analysis of efficient
algorithms, emphasizing methods of application. Topics include
divide-and-conquer, randomization, dynamic programming, greedy algorithms,
incremental improvement, complexity, and cryptography.
Author(s): Prof. Erik Demaine, Prof. Srinivas
Devadas and Prof. Nancy Lynch
This Lecture Notes is
organized into eleven chapters. Besides the subject matter, each chapter
includes a list of problems and a list of programming projects. Also, each
chapter concludes with a list of references for further reading and exploration
of the subject. Topics covered includes: Lists, Dictionaries, Binary Trees,
Balanced Trees , Priority Queues , Directed Graphs, Undirected Graphs, Sorting
Methods, 0 Introduction to NP-Completeness.
In computer science, an
algorithm is a self-contained step-by-step set of operations to be performed.
Topics covered includes: Algorithmic Primitives for Graphs, Greedy Algorithms,
Divide and Conquer, Dynamic Programming, Network Flow, NP and Computational
Intractability, PSPACE, Approximation Algorithms, Local Search, Randomized
lecture note discusses the approaches to designing optimization algorithms,
including dynamic programming and greedy algorithms, graph algorithms, minimum
spanning trees, shortest paths, and network flows. Also it briefly discusses
algorithmic problems arising from geometric settings, that is, computational
note covers the following topics related to Algorithm Analysis and Design: Model
and Analysis, Warm up problems, Brute force and Greedy strategy, Dynamic
Programming, Searching, Multidimensional Searching and Geometric algorithms,
Fast Fourier Transform and Applictions, String matching and finger printing,
Graph Algorithms, NP Completeness and Approximation Algorithms.