具有O(1)concat的简单平衡树?


Answers:


5

您可以通过在连接时将一棵树上的所有内容重新插入到另一棵树上(它具有O(n log n)的开销,与在树中构造该树所使用的完全相同)来重新构建具有O(1)摊销连接时间的数据结构。首先,所以总时间仍然是O(n log n)),但这是作弊。

对于最坏的O(1)时间,作者声称这对任何数据结构都是一个开放问题,因此我认为您不会找到一个简单的答案。


1
我不确定Brodal等人。意味着即使在短暂的情况下,这也是一个开放的问题。您是否在谈论摘要中引用“ Kaplan和Tarjan提出的一个开放问题”的句子?如果是这样,我认为从该文件的上下文来看 K&T 显然是在说这个问题是在纯粹的功能结构中进行的。
jbapple

我下载了该论文,但明确指出“他们[K&T]询问是否可以在O(1)最坏情况下的时间(即使是短暂的情况下)实施联接操作,同时支持对数时间的搜索和更新。”
Blaisorblade

好点,Blaisorblade。我错过了那句话。
jbapple

nO(nlogn)O(nlog2n)

4

我下载了您提到的论文,并且至少在该论文发表时回答为“否”。这有两个原因:

  1. 需要一篇论文来适当地审查相关的工作,并且在引言中也要这样做,在图1的摘要中表示“否”。至少,如果它已经在一个著名的会议上发表过,但是看起来是这样(Brodal在C. Okasaki的“ Purely Functional Data Structures”中被多次引用,这是该主题的参考)。

    但是,他们在文中提到了一种搜索时间为O(log n log log n)且连接时间为O(1)的算法,该算法在STOC '96的K&T论文中进行了概述。这可能对您很有趣。

    • 他们解决的K&T面临的公开挑战是有关具有O(1)串联和O(log N)搜索/插入/删除的字典,即使对于临时结构也是如此。

要点1.还确保您可以简单地寻找引用该论文的文献来查找以后的结果,他们将需要引用它。

如果这个问题与实际相关(但不应该如此),我认为常量因子比O(1)和O(log N)之间的差异更重要(如Sedgewick的算法介绍中所述),您只需要寻找应用程序用例的基准即可。


如果您的意思是,ESOP是一个声誉卓著的会议。
查尔斯·斯图尔特

这是我的问题,但是对于ESA,该文件在哪里发表,而不是ESOP(也许是您的意思)。我不确定我是否可以依靠会议排名。这个非官方的排名页面表明,ESA的声誉也很高:www3.ntu.edu.sg/home/assourav/crank.htm
Blaisorblade
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.