使用多变量键

时间:2017-11-14 17:12:55

标签: algorithm performance hash hashmap hashtable

假设字典有2个可变键而不是1个像

dictionary[3,5] = Something
dictionry[1,2] = Something
dictionary[3,1] = Something

搜索时间是否仍为O(1)。如果我需要查找字典[1,5]是否存在会产生恒定时间吗?

提前致谢。

2 个答案:

答案 0 :(得分:2)

在散列表中进行查找时,所涉及的成本是

的成本
  • 散列要查找的项目,
  • 将该项目与表格中的其他其他条目(预期的O(1)数量)进行比较。

我们可以将哈希表查找的预期成本写为O(哈希成本+比较成本)。

在您的情况下,对一对而不是单个元素进行哈希处理的成本仍为O(1) - 只需对该对中的每个元素进行哈希处理,并对这两个值应用一些哈希组合步骤。类似地,比较两对的成本也是O(1)(假设该对中的每个单独元素可以在恒定时间内进行比较)。因此,查找仍然是(预期)恒定时间。

上述论点推广到任何固定大小的三元组作为键。您通常不得不担心散列的成本,并在它们具有可变长度时比较密钥,就像您散列没有长度限制的字符串一样。

答案 1 :(得分:0)

是。这不是新的。通常,您可以使用字符串键的字典。如果您将字符串视为字符数组,则将字符列表作为键。因此,在相同的情况下,您可以说您的词典也在O(1)中工作(如果字符串的长度不变)。