The Joys of Hashing: Hash Table Programming with C

Mailund, Thomas

  • 出版商: Apress
  • 出版日期: 2024-10-26
  • 售價: $1,860
  • 貴賓價: 9.5$1,767
  • 語言: 英文
  • 頁數: 260
  • 裝訂: Quality Paper - also called trade paper
  • ISBN: 9798868808258
  • ISBN-13: 9798868808258
  • 海外代購書籍(需單獨結帳)

相關主題

商品描述

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

Who This Book Is For

Those with at least some prior programming experience, especially in C programming.

商品描述(中文翻譯)

建立用 C 程式語言撰寫的哈希表的可運作實作。全新修訂的第二版增強了簡化的程式碼和更全面的解釋,旨在提高清晰度和理解力,同時利用 C 程式設計中的最新特性。

本書從簡單的初步嘗試開始,這些嘗試不包含碰撞解決策略。接著,書中進一步介紹改進和擴展,說明不同的設計理念和方法,並進行實驗以驗證這些選擇。您將學習到,當哈希表被適當實作和使用時,能夠成為極其高效的資料結構,用於表示集合和查詢表,提供低開銷、恆定時間的插入、刪除和查詢操作。

《哈希的樂趣》將引導您實作高效的哈希表,並探討在建立表格時不同設計選擇的優缺點。本書中使用的源代碼可在 GitHub 上獲得,供您重用和實驗。

您將學到的內容:
- 掌握哈希表背後的基本概念
- 執行碰撞解決,包括處理碰撞的策略及其對性能的影響
- 根據需要調整或增減表格大小
- 通過處理何時必須與鍵一起存儲值來存儲值,以建立一般的集合和映射

本書適合對象:
具備至少一些程式設計經驗的人,特別是 C 程式設計。

作者簡介

Thomas Mailund is a former associate professor in bioinformatics at Aarhus University, Denmark, and currently Senior Software Architect at the quantum computing company Kvantify. He has a background in math and computer science, including experience programming and teaching in C and R programming languages. For the last decade, his main focus has been on genetics and evolutionary studies, particularly comparative genomics, speciation, and gene flow between emerging species.

作者簡介(中文翻譯)

Thomas Mailund 是丹麥奧胡斯大學的前生物資訊學副教授,目前擔任量子計算公司 Kvantify 的資深軟體架構師。他擁有數學和計算機科學的背景,包括在 C 和 R 程式語言中的程式設計和教學經驗。在過去十年中,他的主要研究重點是遺傳學和進化研究,特別是比較基因組學、物種形成以及新興物種之間的基因流動。