Book contents
- Frontmatter
- Dedication
- Contents
- Preface
- 1 Introduction
- 2 A Warm-up
- 3 Random Sampling
- 4 List Ranking
- 5 Sorting Atomic Items
- 6 Set Intersection
- 7 Sorting Strings
- 8 The Dictionary Problem
- 9 Searching Strings by Prefix
- 10 Searching Strings by Substring
- 11 Integer Coding
- 12 Statistical Coding
- 13 Dictionary-Based Compressors
- 14 Block-Sorting Compression
- 15 Compressed Data Structures
- 16 Conclusion
- Index
4 - List Ranking
Published online by Cambridge University Press: 08 June 2023
- Frontmatter
- Dedication
- Contents
- Preface
- 1 Introduction
- 2 A Warm-up
- 3 Random Sampling
- 4 List Ranking
- 5 Sorting Atomic Items
- 6 Set Intersection
- 7 Sorting Strings
- 8 The Dictionary Problem
- 9 Searching Strings by Prefix
- 10 Searching Strings by Substring
- 11 Integer Coding
- 12 Statistical Coding
- 13 Dictionary-Based Compressors
- 14 Block-Sorting Compression
- 15 Compressed Data Structures
- 16 Conclusion
- Index
Summary
This chapter addresses a problem related to lists, the basic data structure underlying the design of many algorithms that manage interconnected items. It starts with an easy-to-state but I/O-inefficient solution derived from the optimal one designed for the classic RAM model; it then discusses increasingly sophisticated solutions that are elegant and efficient in the two-level memory model, and are still simple enough to be implemented with a few lines of code. The treatment of this problem will also allow us to highlight a subtle relation between parallel computation and I/O-efficient computation, which can be deployed to derive efficient disk-aware algorithms from efficient parallel algorithms.
- Type
- Chapter
- Information
- Pearls of Algorithm Engineering , pp. 32 - 43Publisher: Cambridge University PressPrint publication year: 2023