【问题标题】:Splay Tree Worst Case Search Time展开树最坏情况搜索时间
【发布时间】:2017-10-10 13:00:24
【问题描述】:

由于splay tree是一种不平衡二叉搜索树 (brilliant.org/wiki/splay-tree),它不能保证最多为O(log(n))的高度。因此,我认为它不能保证 O(log(n)) 的最坏情况搜索时间。

但是根据bigocheatsheet.com

Splay Tree 的最坏情况搜索时间为 O(log(n))???

【问题讨论】:

  • 维基百科页面清楚地做出了正确的陈述,即摊销的访问成本是 O(log n),尽管任何单独的访问都可以是 O(n)。摊销界限很常见。许多语言中动态增长的ArrayLists 已摊销了 O(1) 插入成本,但任何单个插入都可能需要 O(n) 时间,因为必须将整个数组复制到一个新的更大的内存块中。

标签: algorithm time-complexity binary-search-tree


【解决方案1】:

你是对的;对于不平衡的树,在展开树中查找的成本可以达到 Θ(n)。

像 big-O 备忘单这样的许多资源要么做出简化的假设,要么只是在其中包含事实上不正确的数据。目前尚不清楚他们是否只是在这里错了,或者他们是否在谈论摊销的最坏情况等。

最好了解您正在使用的数据结构的内部结构,以便了解运行时的来源。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 2015-07-10
    • 2016-12-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多