【发布时间】:2012-04-21 13:03:00
【问题描述】:
我正在和朋友一起做作业,有一个问题是关于线性探测方法的搜索、添加和删除的平均运行时间。我认为它是 O(n),因为它必须检查一定数量的节点,直到找到要添加的开放节点。并且在搜索时,它从原始索引开始并向上移动,直到找到所需的数字。但我的朋友说它是 O(1)。哪个是对的?
【问题讨论】:
-
我想补充一下 Yavar 的答案:记住,O(1) 不是一个单一的操作。它可能是一个很大的常数,但如果它不是从像 n 这样的变量派生的,那也没关系。即使您需要经过 20 个节点来放置哈希,它仍然是 O(1)。当然,这仅适用于哈希表,前提是某些条件为真,但对于设计良好的哈希表,平均为 O(1)
标签: algorithm data-structures hashtable asymptotic-complexity