【发布时间】:2011-08-12 13:50:27
【问题描述】:
我试图想出以下数据结构的大 O 运行时间。 他们正确吗?
将 n 个整数插入到最初为空的 AVL 树中(最佳情况) O(log n)
将 n 个整数插入到最初为空的 AVL 树中(最坏情况) O(log n)
将 n 个整数插入最初为空的二叉搜索树中,该二叉搜索树不强制执行 结构特性(最佳情况) O(log n)
将 n 个整数插入最初为空的二叉搜索树中,该二叉搜索树不强制执行 结构特性(最坏情况) O(n)
解释为什么它们不正确也会很有帮助
【问题讨论】:
-
为什么这个标签是 C ?所有语言的复杂性肯定是一样的吗?
-
您的意思是插入每个元素需要多少时间?还是全部?插入 n 个元素始终是 omega(n)。
-
@cnicutar:严格来说,复杂度取决于基本操作的复杂度。 C 中的基本操作与 Haskell 或 Prolog 中的不同。不过,在这种情况下,这并不重要。
-
@amit 这不一定是真的。使用分布式计算和共享内存,在插入单个元素的同时插入 n 个元素是完全可行的。虽然它可能不一定适用于这种情况,但请务必注意。
-
@glowcoder:时间复杂度是指需要的 OP 数量,而不是实际花费的时间。它仍然需要 omega(n) OP,只是碰巧它们同时发生。
标签: data-structures big-o time-complexity