Fundamentals 1
1. Introduction 3
2. C++ (and C) 7
3. Elementary Data Structures 15
4. Trees 35
5. Recursion 51
6. Analysis of Algorithms 67
7. Implementation of Algorithms 81
Sorting Algorithms 91
8. Elementary Sorting Methods 93
9. Quicksort 115
10. Radix Sorting 133
11. Priority Queues 145
12. Mergesort 163
13. External Sorting 177
Searching Algorithms 191
14. Elementary Searching Methods 193
15. Balanced Trees 215
16. Hashing 231
17. Radix Searching 245
18. External Searching 259
String Processing 275
19. String Searching 277
20. Pattern Matching 293
21. Parsing 305
22. File Compression 319
23. Cryptology 333
Geometric Algorithms 345
24. Elementary Geometric Methods 347
25. Finding the Convex Hull 359
26. Range Searching 373
27. Geometric Intersection 389
28. Closest-Point Problems 401
Graph Algorithms 413
29. Elementary Graph Algorithms 415
30. Connectivity 437
31. Weighted Graphs 451
32. Directed Graphs 471
33. Network Flow 485
34. Matching 495
Mathematical Algorithms 507
35. Random Numbers 509
36. Arithmetic 521
37. Gaussian Elimination 535
38. Curve Fitting 545
39. Integration 555
Advanced Topics 567
40. Parallel Algorithms 569
41. The Fast Fourier Transform 583
42. Dynamic Programming 595
43. Linear Programming 607
44. Exhaustive Search 621
45. NP-Complete Problems 633
Index 643