LEADER 03223nam 22005535 450 001 9910338007503321 005 20220407181308.0 010 $a9781484240663 010 $a1484240669 024 7 $a10.1007/978-1-4842-4066-3 035 $a(CKB)4100000007611001 035 $a(DE-He213)978-1-4842-4066-3 035 $a(MiAaPQ)EBC5693499 035 $a(CaSebORM)9781484240663 035 $a(PPN)235007382 035 $a(OCoLC)1090817678 035 $a(OCoLC)on1090817678 035 $a(EXLCZ)994100000007611001 100 $a20190209d2019 u| 0 101 0 $aeng 135 $aurnn#008mamaa 181 $ctxt$2rdacontent 182 $cc$2rdamedia 183 $acr$2rdacarrier 200 14$aThe joys of hashing $ehash table programming with C /$fby Thomas Mailund 205 $a1st ed. 2019. 210 1$aBerkeley, CA :$cApress :$cImprint: Apress,$d2019. 215 $a1 online resource (XI, 206 p. 72 illus.) 311 08$a9781484240656 311 08$a1484240650 320 $aIncludes bibliographical references. 327 $a1. The Joys of Hashing -- 2. Hash Keys, Indices and Collisions -- 3. Collision Resolution, Load Factor and Performance -- 4. Resizing -- 5. Adding Application Keys and Valuse -- 6. Heuristic Hash Functions -- 7. Universal Hashing -- 8. Conclusions. 330 $aBuild 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. You will: 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. 606 $aProgramming languages (Electronic computers) 606 $aComputer programming 606 $aProgramming Languages, Compilers, Interpreters$3https://scigraph.springernature.com/ontologies/product-market-codes/I14037 606 $aProgramming Techniques$3https://scigraph.springernature.com/ontologies/product-market-codes/I14010 615 0$aProgramming languages (Electronic computers) 615 0$aComputer programming. 615 14$aProgramming Languages, Compilers, Interpreters. 615 24$aProgramming Techniques. 676 $a005.13 700 $aMailund$b Thomas$4aut$4http://id.loc.gov/vocabulary/relators/aut$0846442 801 0$bUMI 801 1$bUMI 906 $aBOOK 912 $a9910338007503321 996 $aThe Joys of Hashing$92494401 997 $aUNINA