Algorithm 使用链接填充哈希表的最坏情况和最佳情况时间?

Algorithm 使用链接填充哈希表的最坏情况和最佳情况时间?,algorithm,data-structures,hashtable,complexity-theory,big-o,Algorithm,Data Structures,Hashtable,Complexity Theory,Big O,显然最好的情况是On,但最坏的情况是On 2,我不明白。如果将哈希表实现为一个链表数组,我假设最坏的情况是每个哈希都指向同一个位置 因此,不是将每个项目都放在O1上,因为将项目添加到链接列表只是在末尾/前端粘贴一个节点的问题吗?在最坏的情况下,你会得到一组空桶+一个大小为n的桶?我在这里遗漏了什么?我猜他们假设一个实现在插入之前检查哈希表中是否存在元素,这是典型的,因为哈希表通常在理论上表示集合。在插入新元素之前,该实现必须检查列表中的每个元素。我猜他们假设一个实现在插入之前检查哈希表中是否存在

显然最好的情况是On,但最坏的情况是On 2,我不明白。如果将哈希表实现为一个链表数组,我假设最坏的情况是每个哈希都指向同一个位置


因此,不是将每个项目都放在O1上,因为将项目添加到链接列表只是在末尾/前端粘贴一个节点的问题吗?在最坏的情况下,你会得到一组空桶+一个大小为n的桶?我在这里遗漏了什么?

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

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

+1我完全忘记了检查是否存在的逻辑。谢谢你提到这个!哦,对了,检查多个事件需要时间。我完全忘记了检查存在的逻辑。谢谢你提到这个!哦,对了,检查多个事件需要时间。一定是这样。