我正在阅读java编程中的大O符号。我发现下表显示了不同数据结构的不同大O.
我的问题是:
O(n^2)
吗? (搜索和删除)O(n)
?O(1)
还是O(n)
?O(log(n)*log(n))
而插入只是O(log(n))
吗?感谢。
答案 0 :(得分:3)
O(n)
),然后必须移动项目以填补空白(需要O(n)
)。因此,有效时间复杂度为O(n)
。O(1)
。O(1)
插入和搜索时间。几乎所有其他数据结构都需要O(n)
插入时间。 (O(n)
课程包括O(log n)
,O(1)
等。假设我们在哈希表中使用separate chaining,其中每个链是一个已排序的链表。然后,对于每次插入,我们需要搜索链表以找到要插入的正确位置(就像插入排序一样),这将花费O(n)
最坏情况时间。O(log n)
),然后你必须用它的inorder继承者或者前任替换已删除的节点(take {{ 1}})。因此,有效平均案例删除时间为O(log n)
。答案 1 :(得分:2)
答案 2 :(得分:2)
让我回答你的问题:
O(n) + O(n) = O(n)
。O(1)
,但你只能访问一个非常重要的元素。对于其他元素,它是O(n)。O(n)
。我会在一分钟内解释更多。