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.
are algorithms designed to run on multiple processors, without tight centralized
control. Topics covered includes: Variations in model assumptions, Top-level
organization is by the timing model, Synchronous model, Asynchronous model,
Partially synchronous model, Synchronous networks.
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 note introduces a number of important algorithm
design techniques as well as basic algorithms that are interesting both from a
theoretical and also practical point of view. Topics covered are: Introduction
to Algorithms, Asymptotic Analysis, Recurrence Equations, Sorting Algorithms,
Search Trees, Randomized Algorithms and Quicksort, Selection Algorithms, Number
Theory and Cryptography Algorithms, Graph algorithms, Greedy Algorithms and
External Memory Algorithms.
Author(s): Department of Computer
Science at Duke University
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
This note covers the following topics:
Algorithms and Data Structures, Introduction to Java, Software Development,
Writing Classes, Writing Classes in Java, Unit Testing, Building Large Java
Applications, Inheritance and Polymorphism, Interfaces, A Math Review, Algorithm
Analysis, Data Types versus Data Structures, Collections, Stacks ,Queues, Lists,
Recursion, Sorting, Trees, Oriented Trees, Ordered Trees, Binary Trees, Sets and
Dictionaries, Search Trees, Binary Search Trees, Red-Black Trees.
This note covers the following topics: Computational Models,
Complexity measures, Power increasing resourses, Basic relatton
amomg the models and measures, Reducibility, completeness and
closure under reductions, Deterministics and nondeterministics
logarithmic space, Deterministics polynomial time, Polynomial
Hierarchy and Polynomial space.
This thesis presents efficient algorithms for internal and
external parallel sorting and remote data update. Topics covered includes: Internal Parallel
Sorting, External Parallel Sorting, The rsync algorithm, rsync
enhancements and optimizations and Further applications for rsync.