

This section contains free ebooks and guides on computer algorithm, some of the resources in this section can be viewed online and some of them can be downloaded.




Introduction to Algorithms Lecture NotesMichael DinitzOnline  NA Pages  EnglishThis 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, depthfirst search, shortest paths,
design of online algorithms and competitive analysis.
 Advanced Algorithms Lectures and ResourcesAlex AndonOnline  NA Pages  EnglishThis 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.
 Introduction to Algorithms by Shayan Oveis GharanShayan Oveis GharanOnline  NA Pages  EnglishThis book
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,
NPCompleteness, Linear Programming.
 Design and Analysis of AlgorithmsProf. Erik Demaine, Prof. Srinivas
Devadas and Prof. Nancy LynchOnline  NA Pages  EnglishThis 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
divideandconquer, randomization, dynamic programming, greedy algorithms,
incremental improvement, complexity, and cryptography.
 Design and Analysis of Algorithms Course NotesSamir KhullerPDF  161 Pages  EnglishThis note
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, Fheap, Minimum Spanning Trees, FredmanTarjan MST
Algorithm, Light Approximate Shortest Path Trees, Matchings, HopcroftKarp
Matching Algorithm, Two Processor Scheduling, Network Flow  Maximum Flow
Problem, The Max Flow Problem and MaxFlow Algorithm.
 Electronic Lecture Notes Data Structures And AlgorithmsY. NarahariPDF  293 Pages  EnglishThis 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 NPCompleteness.
 Advanced Data StructuresVenkatesh RamanOnline  NA Pages  EnglishThis 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
location.
 Data Structures and Algorithms Annotated Reference with ExamplesGranville Barnett,
and Luca Del TongoPDF  112 Pages  EnglishThis 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,
Sorting, Sorting.
 Purely Functional Data StructuresChris OkasakiPDF  162 Pages  EnglishThis note covers the following topics:
Lazy Evaluation and SNotation, Amortization and Persistence via Lazy
Evaluation, Eliminating Amortization, Lazy Rebuilding, Numerical
Representations, DataStructural Bootstrapping, Implicit Recursive Slowdown.
 Algorithms and Data Structures Lecture MaterialsDouglas Wilhelm HarderOnline  NA Pages  EnglishThis
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.
 Introduction to AlgorithmsJon Kleinberg and Eva TardosPDF  459 Pages  EnglishIn computer science, an
algorithm is a selfcontained stepbystep 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
Algorithms.
 Notes on Data Structures and Programming TechniquesJames AspnesPDF  530 Pages  EnglishPurposes to
this note is to teach you to program in the C programming language, and to teach
you how to choose, implement, and use data structures and standard programming
techniques. Topics coverd includes: The Zoo and the Zoo Annex, The Linux
programming environment, The C programming language, Data structures and
programming techniques.
 Analysis and Design of Computer Algorithms by Ganesh KumarSh. Ganesh
KumarPDF  85 Pages  EnglishThis note covers the following topics: Divide And Conquer Strategy, Greedy
Method, Minimum Spanning Trees, Dynamic Programming, Optimal Binary search
trees, Backtracking Method, Branch and Bound, Lower bound Theory.
 Introduction to the Design and Analysis of AlgorithmsDepartment of Computer
Science at Duke UniversityOnline  NA Pages  EnglishThis 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.
 Skiena's Algorithms LecturesSteven SkienaOnline  NA Pages  EnglishThis note covers the following
topics: Introduction to Algorithms, Asymptotic Notation, Modeling or Logarithms,
Elementary Data Structures, Dictionary data structures, Sorting, Heapsort or
Priority Queues, Recurrence Relations, Introduction to NPcompleteness,
Reductions, Cook's Theorem or Harder Reduction, NPcompleteness challenge,
Approximation Algorithms and Heuristic Methods.
 Data Structures and Algorithm AnalysisClifford A. ShafferOnline  NA Pages  EnglishThis
book is designed as a teaching text that covers most standard data structures,
but not all. A few data structures that are not widely adopted are included to illustrate important principles.
 Data Structures and Algorithms The Basic ToolboxK. Mehlhorn and P. SandersOnline  NA Pages  EnglishThis
book is a concise introduction to this basic toolbox, intended for students and
professionals familiar with programming and basic mathematical language.
 Data Structures and AlgorithmsMartin RichardsPDF  80 Pages  EnglishThis 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, pseudorandom numbers,
data compression, algorithms on graphs, algorithms on strings and Geometric
Algorithms.
 Lecture Notes on AlgorithmsRay
ToalOnline  NA Pages  EnglishThis lecture note explains data structures and algorithms, focusing on
advanced topics such as graph theory, randomized algorithms, and combinatorial
search.
 Lecture Notes on Data StructuresRay ToalOnline  NA Pages  EnglishThis 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, RedBlack Trees.
 Applied Algorithms Lecture SlidesRichard AndersonOnline  NA Pages  EnglishThis note
covers the following topics: Introduction, Stable Matching, Graph Algorithms,
Greedy Algorithms, Minimum Spanning Trees, Recurrences, Dynamic programming,
Network Flow and Network Flow Applications.
 Design and Analysis of Computer Algorithms (PDF 135P)David M. MountPDF  135 Pages  EnglishThis
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
geometry.
 Lecture Notes Introduction to Computer AlgorithmsProf.
Erik Demaine, Prof. Ronald Rivest and Prof. Srinivas DevadasOnline  NA Pages  EnglishThis course note
provides an introduction to mathematical modeling of computational problems. It
covers the common algorithms, algorithmic paradigms, and data structures used to
solve these problems.
 Lecture Notes for Algorithm Analysis and Design (PDF 124P)Sandeep SenPDF  128 Pages  EnglishThis
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.
 Algorithms Lecture NotesRashid
Bin MuhammadOnline  NA Pages  EnglishThis note covers the following topics: Mathematics
for Algorithmic, Greedy Algorithms, Divide and Conquer Algorithms,
Dynamic Programming, Amortized Analysis, Hash Table, Binary Search
Tree, Graph Algorithms, String Matching, Sorting and Approximate
Algorithms
 Information Theory, Inference, and Learning Algorithms (David J.C. MacKay)  Computer Programming Algorithms Directoryalgosort.comOnline  NA Pages  EnglishThis
note covers the following topics: Encryption Algorithms, Genetic
Algorithms, Geographic Information Systems Algorithms, Sorting
Algorithms, Search Algorithms, Tree Algorithms, Computational
Geometry Algorithms, Phonetic Algorithms and Project Management
Algorithms.
 Algorithms (Shai Simonson)Shai
SimonsonOnline  NA Pages  EnglishThis note covers the design of algorithms according to
methodology and application. Methodologies include: divide and
conquer, dynamic programming, and greedy strategies. Applications
involve: sorting, ordering and searching, graph algorithms,
geometric algorithms, mathematical (number theory, algebra and
linear algebra) algorithms, and string matching algorithms.
 Sorting and Searching Algorithms (Thomas Niemann)  Combinatorial Algorithms (Jeff Erickson)Jeff
EricksonOnline  NA Pages  EnglishThis book covers the follwoing topics related to
algorithms: Recursion, Amortization, Randomization, Basic graph
algorithms, Combinatorial optimization, Lower bounds.
 Information Retrieval (C.J. van Rijsgergen)C.J.
van RijsgergenOnline  NA Pages  EnglishThe material of this book is aimed at advanced
undergraduate information (or computer) science students,
postgraduate library science students, and research workers in the
field of IR. Some of the chapters, particular chapter 6, make simple
use of a little advanced mathematics.
 Introduction to Complexity Theory (Oded Goldreich)Oded
GoldreichOnline  NA Pages  EnglishThis book explains the following topics: intrinsic
complexity of computational tasks, Computational Complexity, P, NP,
and NPCompleteness, relations between various computational
phenomena.
 Data Structures and Algorithms (John Morris)John
MorrisOnline  NA Pages  EnglishThese notes were prepared for the Programming Languages and
System Design course in the BE (Information Technology) course at
the University of Western Australia. The course note covers the
following topics: Algorithm Complexity, Classes of Efficient
Algorithms, Searching, Queues, Sorting, Graphs, Huffman Encoding,
Fast Fourier Transforms, Matrix Chain Multiplication, Intractible
Problems and AlphaBeta search.
 An Introduction to Computational ComplexityMartin
TompaPDF  85 Pages  EnglishThis 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.
 Efficient Algorithms for Sorting and Synchronization (Andrew Tridgell, PDF)Andrew
TridgellPDF  115 Pages  EnglishThis 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.
 Computer Animation Algorithms Techniques (Rick Parent)  Handbook of Algorithms and Data Structures (G. Gonnet, R. Baeza Yates)  List of algorithms Mirror  Dictionary of Algorithms and Data Structures  Lecture Notes on Computational Complexity (Luca Trevisan) 








