Listen

Description

Part I: Foundations

Chapter 1: The Role of Algorithms in Computing

Chapter 2: Getting Started

Chapter 3: Characterizing Running Times

Chapter 4: Divide-and-Conquer

Part II: Sorting and Order Statistics

Introduction to Sorting

Chapter 6: Heapsort

Chapter 7: Quicksort

Chapter 8: Sorting in Linear Time

Chapter 9: Medians and Order Statistics

Part III: Data Structures1

Introduction to Dynamic Sets

Chapter 10: Elementary Data Structures

Chapter 11: Hash Tables

Chapter 12: Binary Search Trees

Chapter 13: Red-Black Trees

Part IV: Advanced Design and Analysis Techniques

Introduction to Advanced Techniques

Chapter 14: Dynamic Programming

Chapter 15: Greedy Algorithms

Chapter 16: Amortized Analysis

Part V: Advanced Data Structures

Introduction to Advanced Data Structures

Chapter 17: Augmenting Data Structures

Chapter 18: B-Trees

Chapter 19: Data Structures for Disjoint Sets

Part VI: Graph Algorithms

Introduction to Graph Problems

Chapter 20: Elementary Graph Algorithms

Chapter 21: Minimum Spanning Trees

Chapter 22: Single-Source Shortest Paths

Chapter 23: All-Pairs Shortest Paths

Chapter 24: Maximum Flow

Chapter 25: Matchings in Bipartite Graphs

Part VII: Selected Topics

Introduction to Selected Topics

Chapter 26: Parallel Algorithms

Chapter 27: Online Algorithms

Chapter 28: Matrix Operations

Chapter 29: Linear Programming

Chapter 30: Polynomials and the FFT

Chapter 31: Number-Theoretic Algorithms

Chapter 32: String Matching

Chapter2 33: Machine-Learning Algorithms

Chapter 34: NP-Completeness

Chapter 35: Approximation Algorithms