Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

Is there a Cormen-like reference on Hashes and Hashing? This particular structure has seen little attention in my CS education for some reason but I'd like to learn more as they seem to be everywhere. I know Cormen covers it but I'm looking for something more specialized and in-depth.

share|improve this question
As far as I know, there aren't that many books on hashes and only hashes. I'm sure you can find a few, but they are not recognized as the "Bible". –  Dynamic May 7 '12 at 21:39
I don't really get your question. A hash is just a BLOB returned by a hash function. Do you want to know more about hash-functions?Are you talking about cryptographic hash functions, or the fast but insecure kind used in most hashtables? Or about Hashtables? –  CodesInChaos May 8 '12 at 9:28
I assume that by Cormen you mean Thomas H. Cormen and thus are referring to Introduction to Algorithms. Its usually a good idea to link to such resources, as they may not be as widely known as you assume. –  Mark Booth May 8 '12 at 13:21

2 Answers 2

up vote 3 down vote accepted

I really enjoyed the book File Organization and Processing. Despite it's name, it's just a book of data structures. The first half is about hashing and various collision resolution methods, and later on there is coverage of some dynamic hashing algorithms.

It's a little old but it's still useful. There are step-by-step examples for each algorithm and answers to the exercises.

Disclaimer: I'm biased because the author was one of my CS professors.

share|improve this answer

Cormen is a little out of date these days. The wikipedia page has a good collection and discussion, but the leader these days for fast, non-cryptographic data access is murmur hash.

p.s. One might argue that new bibles aren't being created anymore these days. There are just very good pages on Wikipedia and Stack Overflow. :)

share|improve this answer
Which type of hash you need depends critically on the data being hashed (both in the normal case and in the abnormal case) and on the type of hash table being constructed. For example, hash functions that are strong against attack (abnormal case) tend to be slower with average data (normal case) and there can be external mechanisms to limit the damage in an abnormal case (e.g., overall limits on the total size of input data). –  Donal Fellows May 8 '12 at 14:13

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.