我有一个 C 语言应用程序,我需要在其中进行表查找。
条目是字符串,所有在运行时开始时都是已知的。该表被初始化一次,然后多次查找。表格可以更改,但基本上就像应用程序重新开始一样。我认为这意味着我可以使用完美哈希?可以花一些时间来初始化哈希表,因为它只发生一次。
将有 3 到 100,000 个条目,每个条目都是唯一的,我估计 80% 的案例的条目少于 100 个。在这些情况下,简单的简单查找“足够快”。(==没有人抱怨)
但是,在有 10k+ 个条目的情况下,幼稚方法的查找速度是不可接受的。为 C 中的字符串提供良好的基于哈希表的查找性能的好方法是什么?假设我没有像 Boost/etc 这样的第 3 方商业库。我应该使用什么哈希算法?我该如何决定?