【问题标题】:Collisions in dictionary (python)字典中的碰撞(python)
【发布时间】:2017-02-26 11:53:28
【问题描述】:

我有一个关于 Python 中“字典”结构中的冲突的问题。 'Dict' 结构(内置于 Python)中的搜索、插入和删除在平均上的时间复杂度约为 O(1)。我们都知道这是因为冲突,如果哈希函数将某些对象(根据它们的键)映射到字典中的同一位置,则可能会发生这种情况。 我的问题: 我将向字典(内置 Python)插入键:"a","b","c",...,"z"。在哈希映射中是否有任何可能与这些键发生冲突?是否会确定 O(1) 时间复杂性 [最坏情况] 因为哪里不会发生碰撞?谁能向我保证不会发生与这些键的冲突? Python 的哈希函数是如何工作的? 感谢您的帮助。

【问题讨论】:

  • 您要在 dict 中插入多达 26 个键并且担心时间复杂度?为什么?
  • @Rawing:我在大学参加过考试。我需要确保程序在 O(1) 时间复杂度最坏情况下工作。我需要向我的讲师证明,在这种情况下我不会发生任何碰撞。我不知道如何证明。请帮助我:P
  • 这是一道糟糕的考试题。是否发生哈希冲突取决于所使用的哈希函数,和 dict的确切实现。虽然 python 的内置 hash 为每个字符 a-z 生成不同的哈希(即没有冲突),但如果 dict 内部只有 2 个桶并计算 hash(...)%2,那么 仍然是碰撞。

标签: python dictionary hashmap collision


【解决方案1】:

【讨论】:

  • 那看起来已经过时了。
猜你喜欢
  • 2011-06-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-06-26
  • 2014-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多