15

订单维护问题(或“维护列表中的订单”)是为了支持以下操作:

  • singleton:创建一个包含一个项目的列表,并返回指向它的指针
  • insertAfter:给定一个指向项目的指针,在其后插入一个新项目,并返回指向该新项目的指针
  • delete:给定指向项目的指针,将其从列表中删除
  • minPointer:给定两个指向同一列表中项目的指针,则返回更靠近列表前面的那个

我知道此问题的三种解决方案可以在摊销时间内执行所有操作。它们都使用乘法。O(1)

是否可以在摊销时间内以列表形式维护订单,而无需使用A C 0以外的任何算术运算?O(1)AC0


直到最近(自Pentium III以来)才在乘法运算。我们可以包括使用乘法的解决方案吗?AC0
2014年

我认为那是不对的。首先,我认为不存在乘法。其次,我不认为像您提到的Pentium III这样的特定机器与乘法是否在A C 0中有关。最后,如该问题所示,我显然知道一些针对该问题的基于乘法的算法,因此在新的“答案”中添加更多内容并不会有所改善。一种C0一种C0
jbapple 2014年

找到我在哪里读到的;那是奔腾4而不是III。并没有实现乘法,而是通过该处理器的一条新指令解决了乘法问题:M。Thorup,“关于融合树和原子堆的AC0实现”,在第14届年度ACM-SIAM离散算法研讨会上,费城,美国宾夕法尼亚州,2003年,第699-707页。
2014年

Answers:


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.