This note concentrates
on the design of algorithms and the rigorous analysis of their efficiency.
Topics covered includes: the basic definitions of algorithmic complexity, basic
tools such as dynamic programming, sorting, searching, and selection; advanced
data structures and their applications, graph algorithms and searching
techniques such as minimum spanning trees, depth-first search, shortest paths,
design of online algorithms and competitive analysis.
explains the following topics: Stable Matchings, Algrithm Design by Induction,
Graphs, Trees or BFS, Connected Comps/Bipartite Graphs, DFS or Topological
Ordering, Interval Scheduling, Interval Partitioning, MST, MST, Union find,
Closest Points, Master Theorem, Integer Multiplication, Median, Vertex Cover or
Set Cover, Network Connectivity, Image Segmentation, Reductions,
NP-Completeness, Linear Programming.
explains core material in data structures and algorithm design, and also helps
students prepare for research in the field of algorithms. Topics covered
includes: Splay Trees, Amortized Time for Splay Trees, Maintaining Disjoint
Sets, Binomial heaps, F-heap, Minimum Spanning Trees, Fredman-Tarjan MST
Algorithm, Light Approximate Shortest Path Trees, Matchings, Hopcroft-Karp
Matching Algorithm, Two Processor Scheduling, Network Flow - Maximum Flow
Problem, The Max Flow Problem and Max-Flow Algorithm.
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.
This note covers the following topics:
Lazy Evaluation and S-Notation, Amortization and Persistence via Lazy
Evaluation, Eliminating Amortization, Lazy Rebuilding, Numerical
Representations, Data-Structural Bootstrapping, Implicit Recursive Slowdown.
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
This note covers the
following topics: Fundamentals of data structure, simple data structures, ideas
for algorithm design, the TABLE Data Type, free storage management, sorting,
storage on external media, variants on the SET Data Type, pseudo-random numbers,
data compression, algorithms on graphs, algorithms on strings and Geometric