我有一个C语言应用程序,我需要做表查找。哈希表查找 - 与完美哈希,在C
条目是字符串,全部在运行时开始已知。该表初始化一次,然后多次查找。表格可以更改,但基本上就好像应用程序重新开始。我认为这意味着我可以使用完美哈希?可以花费一些时间进行散列表初始化,因为它只发生一次。
将会有3到100,000个条目,每个条目都是唯一的,我估计80%的案例将少于100个条目。在这些情况下,简单朴素的查找“足够快”。 (==没有人抱怨)
但是,在有10k +条目的情况下,朴素方法的查找速度是不可接受的。为C中的字符串提供良好的基于散列表的查找性能的好方法是什么? 假设我没有Boost/etc等第三方商业图书馆。我应该使用什么散列算法?我该如何决定?
http://www.gnu.org/s/gperf/? –
另外http://cmph.sourceforge.net/ – Nemo