title: Fast String Hashing Algorithm with low collision rates with 32 bit integer
body: <p>I have lots of unrelated named things that I'd like to do quick searches against. An "aardvark" is always an "aardvark" everywhere, so hashing the string and reusing the integer would work well to speed up comparisons. The entire set of names is unknown (and changes over time). What is a fast string hashing algorithm that will generate small (32 or 16) bit values and have a low collision rate?</p>
  
  <p>I'd like to see an optimized implementation specific to C/C++.</p>