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.
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 note covers the following
topics: Self adjusting data structures, amortized analysis, self adjusting
lists, Splay trees, their performance and related conjectures, Hashing, FKS
perfect hashing, Cuckoo hasing, dynamic perfect hashing, Fusion Trees, Fully
dynamic connectivity in polylogarithmic time, Dynamic all pairs shortest paths,
Linear time construction of Suffix trees and arrays, Succinct Data Structures,
External memory data structures, Geometric data structures, Top trees,
Retroactive data structures, Online optimal structure for planar point
This book provides implementations of common and uncommon
algorithms in pseudocode which is language independent and provides for easy
porting to most imperative programming language. Topics covered includes: Data
Structures, Linked Lists, Binary Search Tree, Heap, Sets, Queues, Algorithms,
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.
note will examine various data structures for storing and accessing information
together with relationships between the items being stored, and algorithms for efficiently
finding solutions to various problems, both relative to the data structures and
queries and operations based on the relationships between the items stored.
Topics covered includes: Algorithm analysis, List, stacks and queues, Trees and
hierarchical orders, Ordered trees, Search trees, Priority queues, Sorting
algorithms, Hash functions and hash tables, Equivalence relations and disjoint
sets, Graph algorithms, Algorithm design and Theory of computation.