The Joys of Hashing: Hash Table Programming with C
Book information
Description
Build working implementations of hash tables, written in the C programming language. This book starts with simple first attempts devoid of collision resolution strategies, and moves through improvements and extensions illustrating different design ideas and approaches, followed by experiments to validate the choices. Hash tables, when implemented and used appropriately, are exceptionally efficient data structures for representing sets and lookup tables, providing low overhead, constant time, insertion, deletion, and lookup operations. The Joys of Hashing walks you through the implementation of efficient hash tables and the pros and cons of different design choices when building tables. The source code used in the book is available on GitHub for your re-use and experiments. What You Will LearnMaster the basic ideas behind hash tables Carry out collision resolution, including strategies for handling collisions and their consequences for performance Resize or grow and shrink tables as needed Store values by handling when values must be stored with keys to make general sets and mapsWho This Book Is For Those with at least some prior programming experience, especially in C programming. Front Matter ....Pages i-xi The Joys of Hashing (Thomas Mailund)....Pages 1-5 Hash Keys, Indices, and Collisions (Thomas Mailund)....Pages 7-20 Collision Resolution, Load Factor, and Performance (Thomas Mailund)....Pages 21-47 Resizing (Thomas Mailund)....Pages 49-99 Adding Application Keys and Values (Thomas Mailund)....Pages 101-137 Heuristic Hash Functions (Thomas Mailund)....Pages 139-171 Universal Hashing (Thomas Mailund)....Pages 173-198 Conclusions (Thomas Mailund)....Pages 199-200 Back Matter ....Pages 201-206
Similar books
Introducing Vala Programming: A Language and Techniques to Boost Productivity
2019 · PDF
Beginning Bazel: Building and Testing for Java, Go, and More
2020 · PDF
Introducing Delphi ORM: Object Relational Mapping Using TMS Aurelius
2019 · PDF
Perl 6 Quick Syntax Reference: A Pocket Guide to the Language, the Core Modules, and the Community
2019 · PDF
Einführung in die Programmiersprache COBOL: Eine Anleitung zum „Strukturierten Programmieren“
1980 · PDF
Automated Reasoning: 10th International Joint Conference, IJCAR 2020, Paris, France, July 1–4, 2020, Proceedings, Part I
2020 · PDF
Automated Reasoning: 10th International Joint Conference, IJCAR 2020, Paris, France, July 1–4, 2020, Proceedings, Part II
2020 · PDF
Accelerator Programming Using Directives: 6th International Workshop, WACCPD 2019, Denver, CO, USA, November 18, 2019, Revised Selected Papers
2020 · PDF