وبلاگ بلیان

The Joys of Hashing: Hash Table Programming with C, 2nd Edition

جلد کتاب The Joys of Hashing: Hash Table Programming with C, 2nd Edition

معرفی کتاب «The Joys of Hashing: Hash Table Programming with C, 2nd Edition» نوشتهٔ Caroline، Criado Perez و Thomas Mailund، منتشرشده توسط نشر Apress L. P. در سال 2024. این کتاب در فرمت pdf، زبان انگلیسی ارائه شده است.

Build working implementations of hash tables, written in the C programming language. The new and revised Second Edition has been enhanced with simplified code and more comprehensive explanations, aimed at improving clarity and comprehension while exploiting the latest features in C programming.This book starts with simple first attempts devoid of collision resolution strategies. It then progresses through improvements and extensions illustrating different design ideas and approaches, followed by experiments to validate the choices. You will learn how 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 Learn• Master 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 maps Table of Contents About the Author About the Technical Reviewer Acknowledgments Chapter 1: Introduction Chapter 2: Hash Keys, Indices, and Collisions Mapping from Keys to Indices to Bins Hash table operations Collision risk Conclusion Chapter 3: Collision Resolution, Load Factor, and Performance Chaining Linked Lists Chained Hashing Collision Resolution Open Addressing Probing Strategies Load and Performance Theoretical Runtime Performance Chained Hashing Open Addressing Hashing Experiments Conclusion Chapter 4: Resizing Amortizing Resizing Costs Resizing Chained Hash Tables Resizing Open Addressing Hash Tables Theoretical Considerations for Choosing the Load Factor Experiments Resizing When Table Sizes Are Not Powers of Two Dynamic Resizing Chapter 5: Adding Application Keys and Values Generating Hash Sets Generic Lists Generating a Hash Set Hash Maps Key and Value Types Hash Map Definition Creating and Resizing a Table Freeing Tables Lookup Adding and Deleting Conclusions Chapter 6: Heuristic Hash Functions What Makes a Good Hash Function? Hashing Computer Words Additive Hashing Rotating Hashing One-at-a-Time Hashing Jenkins Hashing Hashing Strings of Bytes Chapter 7: Universal Hashing Uniformly Distributed Keys Universal Hashing Stronger Universal Families Binning Hash Keys Collision Resolution Strategies Constructing Universal Families Nearly Universal Families Polynomial Construction for k-Independent Families Tabulation Hashing Performance Comparison Re-hashing Chapter 8: Conclusions Index Build working implementations of hash tables, written in the C programming language. The new and revised Second Edition has been enhanced with simplified code and more comprehensive explanations, aimed at improving clarity and comprehension while exploiting the latest features in C programming. This book starts with simple first attempts devoid of collision resolution strategies. It then progresses through improvements and extensions illustrating different design ideas and approaches, followed by experiments to validate the choices. You will learn how 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 maps
دانلود کتاب The Joys of Hashing: Hash Table Programming with C, 2nd Edition