Introduction To Algorithms 3rd Edition
- By Thomas H. Cormen, Charles E. Leiserson, Ronald L. Rivest and Clifford Stein
Download Now
Contents:
I Foundations
1 The Role of Algorithms in ComputingII Sorting and Order Statistics
1.1 Algorithms2 Getting Started
1.2 Algorithms as a technology
2.1 Insertion sort3 Growth of Functions
2.2 Analyzing algorithms
2.3 Designing Algorithms
3.1 Asymptotic notation4 Recurrences
3.2 Standard notations and common functions
4.1 The substitution method5 Probabilistic Analysis and Randomized Algorithms
4.2 The recursion-tree method
4.3 The master method
4.4 Proof of the master theorem
5.1 The hiring problem
5.2 Indicator random variables
5.3 Randomized algorithms
5.4 Probabilistic analysis and further uses of indicator random variables
6 HeapsortIII Data Structures
6.1 Heaps7 Quicksort
6.2 Maintaining the heap property
6.3 Building a heap
6.4 The heapsort algorithm
6.5 Priority queues
7.1 Description of quicksort8 Sorting in Linear Time
7.2 Performance of quicksort
7.3 Randomized versions of quicksort
7.4 Analysis of quicksort
8.1 Lower bounds for sorting9 Medians and Order Statistics
8.2 Counting sort
8.3 Radix sort
8.4 Bucket sort
9.1 Minimum and maximum
9.2 Selection in expected linear time
9.3 Selection in worst-case linear time
10 Elementary Data StructuresIV Advanced Design and Analysis Technique
10.1 Stacks and queues11 Hash Tables
10.2 Linked lists
10.3 Implementing pointers and objects
10.4 Representing rooted trees
11.1 Direct-address tables12 Binary Search Trees
11.2 Hash tables
11.3 Hash functions
11.4 Open addressing
11.5 Perfect hashing
12.1 What is a binary search tree?13 Red-Black Trees
12.2 Querying a binary search tree
12.3 Insertion and deletion
12.4 Randomly built binary search trees
13.1 Properties of red-black trees14 Augmenting Data Structures
13.2 Rotations
13.3 Insertion
13.4 Deletion
14.1 Dynamic order statistics
14.2 How to augment a data structure
14.3 Interval trees
15 Dynamic ProgrammingV Advanced Data Structures
15.1 Assembly-line scheduling16 Greedy Algorithms
15.2 Matrix-chain multiplication
15.3 Elements of dynamic programming
15.4 Longest common subsequence
15.5 Optimal binary search trees
16.1 An activity-selection problem17 Amortized Analysis
16.2 Elements of the greedy strategy
16.3 Huffman codes
16.4 Theoretical foundations for greedy methods
16.5 A task-scheduling problem
17.1 Aggregate analysis
17.2 The accounting method
17.3 The potential method
17.4 Dynamic tables
18 B-TreesVI Graph Algorithms
18.1 Definition of B-trees19 Binomial Heaps
18.2 Basic operations on B-trees
18.3 Deleting a key from a B-tree
19.1 Binomial trees and binomial heaps20 Fibonacci Heaps
19.2 Operations on binomial heaps
20.1 Structure of Fibonacci heaps21 Data Structures for Disjoint Sets
20.2 Mergeable-heap operations
20.3 Decreasing a key and deleting a node
20.4 Bounding the maximum degree
21.1 Disjoint-set operations
21.2 Linked-list representation of disjoint sets
21.3 Disjoint-set forests
21.4 Analysis of union by rank with path compression
22 Elementary Graph AlgorithmsVII Selected Topics
22.1 Representations of graphs23 Minimum Spanning Trees
22.2 Breadth-first search
22.3 Depth-first search
22.4 Topological sort
22.5 Strongly connected components
23.1 Growing a minimum spanning tree24 Single-Source Shortest Paths
23.2 The algorithms of Kruskal and Prim
24.1 The Bellman-Ford algorithm25 All-Pairs Shortest Paths
24.2 Single-source shortest paths in directed acyclic graphs
24.3 Dijkstra's algorithm
24.4 Difference constraints and shortest paths
24.5 Proofs of shortest-paths properties
25.1 Shortest paths and matrix multiplication26 Maximum Flow
25.2 The Floyd-Warshall algorithm
25.3 Johnson's algorithm for sparse graphs
26.1 Flow networks
26.2 The Ford-Fulkerson method
26.3 Maximum bipartite matching
26.4 Push-relabel algorithms
26.5 The relabel-to-front algorithm
27 Sorting NetworksVIII Appendix: Mathematical Background
27.1 Comparison networks28 Matrix Operations
27.2 The zero-one principle
27.3 A bitonic sorting network
27.4 A merging network
27.5 A sorting network
28.1 Properties of matrices29 Linear Programming
28.2 Strassen's algorithm for matrix multiplication
28.3 Solving systems of linear equations
28.4 Inverting matrices
28.5 Symmetric positive-definite matrices and least-squares approximation
29.1 Standard and slack forms30 Polynomials and the FFT
29.2 Formulating problems as linear programs
29.3 The simplex algorithm
29.4 Duality
29.5 The initial basic feasible solution
30.1 Representation of polynomials31 Number-Theoretic Algorithms
30.2 The DFT and FFT
30.3 Efficient FFT implementations
31.1 Elementary number-theoretic notions32 String Matching
31.2 Greatest common divisor
31.3 Modular arithmetic
31.4 Solving modular linear equations
31.5 The Chinese remainder theorem
31.6 Powers of an element
31.7 The RSA public-key cryptosystem
31.8 Primality testing
31.9 Integer factorization
32.1 The naive string-matching algorithm33 Computational Geometry
32.2 The Rabin-Karp algorithm
32.3 String matching with finite automata
32.4 The Knuth-Morris-Pratt algorithm
33.1 Line-segment properties34 NP-Completeness
33.2 Determining whether any pair of segments intersects
33.3 Finding the convex hull
33.4 Finding the closest pair of points
34.1 Polynomial time35 Approximation Algorithms
34.2 Polynomial-time verification
34.3 NP-completeness and reducibility
34.4 NP-completeness proofs
34.5 NP-complete problems
35.1 The vertex-cover problem
35.2 The traveling-salesman problem
35.3 The set-covering problem
35.4 Randomization and linear programming
35.4 The subset-sum problem
A Summations
A.1 Summation formulas and propertiesB Sets, Etc.
A.2 Bounding summations
B.1 SetsC Counting and Probability
B.2 Relations
B.3 Functions
B.4 Graphs
B.5 Trees
C.1 CountingBibliography
C.2 Probability
C.3 Discrete random variables
C.4 The geometric and binomial distributions
C.5 The tails of the binomial distribution
Index (created by the authors)
No comments:
Post a Comment
Comment