Tango树有什么实际应用吗?

时间:2015-02-03 08:10:30

标签: algorithm tree complexity-theory

Balanced binary search tree提供O(log(n))保证搜索时间。

Tango trees实现了对O(log(log(n))的搜索,同时损害了每个节点的少量内存。虽然我理解从理论的角度来看log(n)log(log(n))会产生巨大的差异,但对于大多数实际应用来说,它几乎没有任何优势。

例如,即使对于像n = 10^20这样的巨大数字(几千千兆字节),log(n) = 64log(log(n)) = 6之间的差异也可以忽略不计。那么Tango树有什么实际用途吗?

1 个答案:

答案 0 :(得分:3)

tl; dr:不,请改用展开树。

Tango树不会给你O(log log n)最坏情况查找 - 平均情况是我认为O(log n log log n)。他们所做的最多是运行O(log log n)次,这比带有oracle的二叉树运行得更快,以便优化访问模式。

Splay树的运行速度可能比前面提到的理论魔术树慢O(1)倍 - 这就是动态最优性猜想。 Splay树比探戈树简单得多,并且具有较低的恒定因子来启动。我无法想象探戈树保证会有用的实际应用。