0% found this document useful (2 votes)
2K views5 pages

Algorithms: Richard Johnsonbaugh Marcus Schaefer

This document appears to be the table of contents for a textbook on algorithms by Richard Johnsonbaugh and Marcus Schaefer published by Pearson Education. The textbook covers fundamental algorithm topics like data structures, searching, sorting, graph algorithms, and complexity. It is divided into 12 chapters that progress from basic concepts to more advanced topics like parallel and distributed algorithms and coping with NP-completeness. The table of contents provides an overview of the subsections in each chapter and the types of algorithms and problems discussed.

Uploaded by

Afras Ahmad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (2 votes)
2K views5 pages

Algorithms: Richard Johnsonbaugh Marcus Schaefer

This document appears to be the table of contents for a textbook on algorithms by Richard Johnsonbaugh and Marcus Schaefer published by Pearson Education. The textbook covers fundamental algorithm topics like data structures, searching, sorting, graph algorithms, and complexity. It is divided into 12 chapters that progress from basic concepts to more advanced topics like parallel and distributed algorithms and coping with NP-completeness. The table of contents provides an overview of the subsections in each chapter and the types of algorithms and problems discussed.

Uploaded by

Afras Ahmad
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

Algorithms

Richard Johnsonbaugh
Marcus Schaefer
DEPAUL UNIVERSITY

PEARSON
Prentice
Hall
Pearson Education
Upper Saddle River, New Jersey 07458
Contents

Preface ix
1 Introduction 1
1.1 Algorithms 1
1.2 Pseudocode for Algorithms 4
1.3 The Present 10
1.4 The Future 12
Notes 14
Chapter Exercises 14

2 Mathematics for Algorithms 17


2.1 Definitions, Notation, and Basic Results 17
2.2 Mathematic al Induction 32
2.3 Analysis of Algorithms 41
2.4 Recurrence Relations 55
2.5 Graphs 68
2.6 Trees 86
Notes 94
Chapter Exercises 94

3 Data Structures 99
3.1 Abstract Data Types 99
3.2 Stacks and Queues 101
3.3 Linked Lists 111
3.4 Binary Trees 120
3.5 Priority Queues, Binary Heaps, and Heapsort 133
3.6 Disjoint Sets 150
Notes 162
Chapter Exercises 162
VI Contents

4 Searching 165
4.1 Binary Search 165
4.2 Depth-First Search 172
4.3 Breadth-First Search 181
4.4 Topological Sort 188
4.5 Backtracking 195
Notes 209
Chapter Exercises 209

5 Divide and Conquer 213


5.1 A Tiling Problem 213
5.2 Mergesort 219
5.3 Finding a Closest Pair of Points 225
5.4 Strassen's Matrix Product Algorithm 232
Notes 236
Chapter Exercises 236

6 Sorting and Selection 239


6.1 Insertion Sort 239
6.2 Quicksort 243
6.3 A Lower Bound for the Sorting Problem 254
6.4 Counting Sort and Radix Sort 257
6.5 Selection 262
Notes 268
Chapter Exercises 268

7 Greedy Algorithms 271


7.1 Coin Changing 271
7.2 Kruskal's Algorithm 275
7.3 Prim's Algorithm 284
7.4 Dijkstra's Algorithm 295
7.5 Huffman Codes 302
7.6 The Continuous-Knapsack Problem 313
Notes 319
Chapter Exercises 319
Contents vii
8 Dynamic Programming 323
8.1 Computing Fibonacci Numbers 323
8.2 Coin Changing Revisited 328
8.3 Multiplying Matrices 336
8.4 The Longest-Common-Subsequence Problem 342
8.5 The Algorithms of Floyd and Warshall 350
Notes 361
Chapter Exercises 361

9 Text Searching 367


9.1 Simple Text Search 368
9.2 The Rabin-Karp Algorithm 371
9.3 The Knuth-Morris-Pratt Algorithm 379
9.4 The Boyer-Moore-Horspool Algorithm 392
9.5 Approximate Pattern Matching 398
9.6 Regular Expression Matching 408
Notes 422
Chapter Exercises 423

10 PandNP 429
10.1 Polynomial Time 429
10.2 Nondeterministic Algorithms and NP 437
10.3 Reducibility and NP-Completeness 452
10.4 NP-Complete Problems 466
10.5 More on NP-Completeness 474
Notes 481
Chapter Exercises 482

11 Coping with NP-Completeness 493


11.1 Brute Force 495
11.2 Randomness 504
11.3 Approximation 511
11.4 Parameterization 526
11.5 Heuristics 541
Notes 551
Chapter Exercises 552
Parallel and Distributed Algorithms 559
12.1 Introduction 559
12.2 The Parallel Random Access Machine (PRAM)
12.3 Sorting Networks 587
12.4 Parallel Architectures 604
12.5 Distributed Algorithms 626
Notes 639
Chapter Exercises 640

References 645

Solutions to Selected Exercises 651

Index 735

You might also like