【问题标题】:Worst-case and best-case time for populating a hash table using chaining?使用链接填充哈希表的最坏情况和最佳情况时间?
【发布时间】:2012-06-20 20:11:47
【问题描述】:

显然最好的情况是 O(n),但显然最坏的情况是 O(n2),我不明白。如果你将哈希表实现为一个链表数组,我假设最坏的情况是每个哈希都去同一个地方。

所以不是把每个项目仍然是 O(1),因为将项目添加到链表只是在末端/前面粘贴一个节点的问题?在最坏的情况下,你最终会得到一个空桶数组 + 一个大小为 n 的桶?我在这里错过了什么?

【问题讨论】:

    标签: algorithm data-structures hashtable complexity-theory big-o


    【解决方案1】:

    我猜他们假设一个实现会在插入之前检查哈希表中是否存在元素(这是典型的,因为哈希表通常在理论上代表集合)。该实现必须在插入新元素之前检查列表的每个元素。

    【讨论】:

    • +1 我完全忘记了检查存在的逻辑。感谢您提及这一点!
    • 哦,对了,检查多次出现需要 O(n) 时间。一定是这样的。
    猜你喜欢
    • 1970-01-01
    • 2017-10-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-21
    • 1970-01-01
    • 2021-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多