【发布时间】:2017-07-16 20:12:49
【问题描述】:
我得到 Θ(1) 部分是用于计算哈希表的时间,但我不明白 Θ(α) 部分。
在我看来,时间复杂度是 Θ(n)。假设 α 是预期长度并且表有 m 个槽。为了保证key不在表中,我们需要搜索每个slot,每个slot有α个例外长度,所以总时间是α乘以m,那么就是Θ(n)。
谁能告诉我哪一部分我没有正确理解?
【问题讨论】:
标签: python algorithm hash hashmap hashtable
我得到 Θ(1) 部分是用于计算哈希表的时间,但我不明白 Θ(α) 部分。
在我看来,时间复杂度是 Θ(n)。假设 α 是预期长度并且表有 m 个槽。为了保证key不在表中,我们需要搜索每个slot,每个slot有α个例外长度,所以总时间是α乘以m,那么就是Θ(n)。
谁能告诉我哪一部分我没有正确理解?
【问题讨论】:
标签: python algorithm hash hashmap hashtable
测试给定键是否在哈希表中不需要测试所有槽。您只需计算给定键 (1) 的哈希值。此哈希值标识密钥必须在哪个槽中,如果它在哈希表中。因此,您只需将该槽中的所有条目 (α) 与给定的键进行比较,得到 Θ(1+α)。您无需查看其他插槽,因为密钥无法存储在任何其他插槽中。
【讨论】: