在处理哈希映射时,我看到了一些处理哈希冲突的策略,但我们想出了一些不同的方法。我想知道这是否是新事物。
此版本的哈希映射仅在哈希和将被哈希的数据结构是可盐化的情况下才有效。hashable
(在 Haskell 中就是这种情况,我们建议实施这种方法。)
这个想法是,不是在哈希映射的每个单元格中存储一个列表或数组,而是存储一个递归哈希映射。此递归哈希映射的唯一区别是您使用不同的盐。这样,哈希映射的一个级别上的哈希冲突很可能不是下一级的哈希冲突。结果,插入这样的哈希映射不再是 O(此哈希上的冲突数),而是 O(此上的冲突以递归方式发生的级别数),这很可能更好。
更详细的解释和实现可以在这里找到: