【问题标题】:Improved Insertion Method for Linear Probing改进的线性探测插入方法
【发布时间】:2015-02-12 21:03:40
【问题描述】:

目前,我被要求设计一个 O(n log n) 算法,用于将 n 元素插入到具有 n 个槽的哈希表中使用线性探测。

最初,如果散列函数生成的散列值最终为单个,则插入 n 个元素将需要 O(n^2) 时间号码。

因此,我正在考虑在散列任何元素之前通过使用某种类型的数据结构预测它们来防止冲突。

例如:计算每个元素的所有哈希值(即O(n)),搜索可能的冲突,改变冲突键的哈希值,然后进行插入。

我的问题:是否有可能在 O(n log n) 时间内找到解决我问题的数据结构?

非常感谢。

【问题讨论】:

    标签: algorithm hash time-complexity


    【解决方案1】:

    首先,初始化一个 vEB tree 以包含 0..n-1,表示哈希表的开放槽。要将元素插入哈希表,请调用 vEB 树的 FindNext 方法一次或两次(如果有回绕)以确定下一个空闲槽,然后调用 Delete 将其从 vEB 树中删除。总运行时间为O(n log log n)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-01-08
      • 2013-06-27
      • 1970-01-01
      • 2013-03-25
      • 2015-08-21
      • 1970-01-01
      • 2011-01-21
      相关资源
      最近更新 更多