kurt mehlhorn data structures and algorithms 1: sorting ... · kurt mehlhorn data structures and...

3
Kurt Mehlhorn Data Structures and Algorithms 1: Sorting and Searching With 87 Figures Springer-Verlag Berlin Heidelberg New York Tokyo 1984

Upload: truongliem

Post on 27-Jul-2018

218 views

Category:

Documents


0 download

TRANSCRIPT

Kurt Mehlhorn

Data Structures and Algorithms 1:

Sorting and Searching

With 87 Figures

Springer-VerlagBerlin Heidelberg New York Tokyo 1984

Contents Vol. 1: Sorting and Searching

/. Foundations 1

1. Machine Models: RAM and RASP 32. Randomized Computations 123. A High Level Programming Language 22

4. Structured Data Types 244.1 Queues and Stacks 244.2 Lists 264.3 Trees 30

5. Recursion 336. OrderofGrowth 377. Secondary Storage 378. Exercises 389. Bibliographic Notes 39

//. Sorting 40

1. General Sorting Methods 421.1 Sorting by Selection, a First Attempt 421.2 Sorting by Selection: Heapsort 451.3 Sorting by Partitioning: Quicksort 501.4 Sorting by Merging 591.5 Comparing Different Algorithms 661.6 LowerBounds 68

2. Sorting by Distribution 802.1 SortingWords 802.2 Sorting Reals by Distribution 84

3. The Lower Bound on Sorting, Revisited 854. The Linear Median Algorithm 945. Exercises 986. Bibliographic Notes 100

///. Sets 102

1. Digital Search Trees 1041.1 Tries 1041.2 Static Tries or Compressing Sparse Tables 108

XII

2. Hashing 1182.1 Hashing with Chaining 1182.2 Hashing with Open Addressing 1242.3 Perfect Hashing 1272.4 Universal Hashing 1392.5 Extendible Hashing 145

3. Searching Ordered Sets 1513.1 Binary Search and Search Trees 1523.2 Interpolation Search 155

4. Weighted Trees 1584.1 Optimum Weighted Trees, Dynamic Programming, and

Pattern Matching 1594.2 Nearly Optimal Binary Search Trees 177

5. Balanced Trees 1875.1 Weight-Balanced Trees 1895.2 Height-Balanced Trees 1995.3 Advanced Topics on (a, b)-Trees 2135.3.1 Mergable Priority Queues 2135.3.2 Amortized Rebalancing Cost and Sorting Presorted

Files 2175.3.3 Finger Trees 2285.3.4 Fringe Analysis 241

6. Dynamic Weighted Trees 2496.1 Self-Organizing Data Structures and Their Amortized

and Average Case Analysis 2526.1.1 Self-Organizing Linear Lists 2566.1.2 Splay Trees 2636.2 D-trees 2756.3 An Application to Multidimensional Searching 284

7. A Comparison of Search Structures 286

8. Subsets of a Small Universe 2898.1 The Boolean Array (Bitvector) 2898.2 The O(log log N) Priority Queue 2908.3 The Union-Find Problem 298

9. Exercises 305

10. Bibliographic Notes 315

IX. Algorithmic Paradigms 317

Appendix 325

Bibliography 328

Subject Index 335