【发布时间】: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