假设字典有2个可变键而不是1个像
dictionary[3,5] = Something
dictionry[1,2] = Something
dictionary[3,1] = Something
搜索时间是否仍为O(1)。如果我需要查找字典[1,5]是否存在会产生恒定时间吗?
提前致谢。
答案 0 :(得分:2)
在散列表中进行查找时,所涉及的成本是
的成本我们可以将哈希表查找的预期成本写为O(哈希成本+比较成本)。
在您的情况下,对一对而不是单个元素进行哈希处理的成本仍为O(1) - 只需对该对中的每个元素进行哈希处理,并对这两个值应用一些哈希组合步骤。类似地,比较两对的成本也是O(1)(假设该对中的每个单独元素可以在恒定时间内进行比较)。因此,查找仍然是(预期)恒定时间。
上述论点推广到任何固定大小的三元组作为键。您通常不得不担心散列的成本,并在它们具有可变长度时比较密钥,就像您散列没有长度限制的字符串一样。
答案 1 :(得分:0)
是。这不是新的。通常,您可以使用字符串键的字典。如果您将字符串视为字符数组,则将字符列表作为键。因此,在相同的情况下,您可以说您的词典也在O(1)
中工作(如果字符串的长度不变)。