你知道 Delphi 5 的一个好的和免费的 Hashtable 实现吗?
我需要在一个 hastable 中组织大量数据,我有点担心我在网络上大多数可用的实现中发现的内存泄漏问题。
Tks
你知道 Delphi 5 的一个好的和免费的 Hashtable 实现吗?
我需要在一个 hastable 中组织大量数据,我有点担心我在网络上大多数可用的实现中发现的内存泄漏问题。
Tks
您还可以查看开源/以前商业的TurboPower SysTools。不知道更新了多少。Julian Bucknall 曾在他的EZDSL 库中推荐过它,尽管那是在他还在使用 TurboPower 并且正在维护/更新的时候。
EZDSL 是一个数据结构库,包括一个哈希表,由 TurboPower 和 DevExpress 的 Julian Bucknall 编写……我没有使用它们,但我对这家伙的代码有很高的期望。
你可以试试我的GpStringHash。保证没有内存泄漏,但仅适用于字符串。我认为它应该在 D5 中工作。
Peter below 刚刚在 public.attachments 中发布了他对 Embarcadero 新组所做的一些修改。在 CodeGear 网站http://cc.codegear.com/Item/24825上他的个人资料中有一些东西描述了它。
Checkout DeCAL,其中包括哈希表和更多数据结构。
除了实际的哈希表实现之外,使用的哈希函数本身也很重要。
Bob Jenkins 的哈希函数是一个不错的选择,请在此处阅读他的论文。
该算法最近针对输入为双字大小的情况进行了改进(请参见此处的 C 版本)。这个版本更快,并且产生两个 32 位散列值而不是一个。(例如,第二个哈希值可用于加速桶内选择。)
对于那些感兴趣的人,我可以在这里粘贴 Delphi 翻译吗?(大约 170 行代码。)