排序对应的复杂度等级


14

TCS的两个部分是算法和复杂性。我简单地说,算法是对上限的研究,它表明您可以(在给定的受限资源下)做某事,而复杂性则是在显示没有一些最小的资源就无法做。

因此,经常在决策模型中陈述算法问题,以将其置于复杂性类别中。

但是,令我一直困扰的是,某些基本算法从来没有被完全提及属于某个特定类。一个例子是(比较)排序。尽我所能尝试,一个相关的类似乎太不足了(真的,是否只是在检查日志空间中对结果进行了排序?那似乎太弱了,或者我没有正确的决策版本)。

比较排序所处的最佳/最合适/最有用的复杂性类别是什么?

Answers:


17

对于(在 -reduction下),排序问题实际上已经完成。一个标准的来源是Vollmer的书的 1.4.3节。ŤC0一种C0

注意是决策问题的类别,但我们通常将排序视为函数问题,即,我们要以不降序的顺序输出数字。但是,我们还可以将排序定义为决策问题,如下所示:ŤC0

给定一个数字和两个数字中的序列,我们想通过按非对进行排序来确定是否位于序列中的位置。请注意,为避免歧义,当,如果,我们希望在之前。一种1个一种ñķp[ñ]一种ķp一种1个一种ñ一种一世=一种Ĵ一种一世一种Ĵ一世<Ĵ


优秀...指定为什么正式决策问题?
米奇

1
在您的答案中加入参考将是双重的。
Oleksandr Bondarenko

@Mitch和@Okeksandr:感谢您的评论!我只是扩展了我的答案以阐明这些观点。
戴勒

这听起来像订单统计的决策问题。一切都放在正确的位置是否有相关的问题?给定序列和上的置换类的东西,确定。这和你一样难。包括课程更难或更完整吗?a1...anσ[1..n]1k<jn,aσk<aσj
米奇

2
@Mitch:我认为检查所有内容是否都在正确的地方实际上比排序容易。直观上,可以检查对于所有可能的对与并联,这相信是可以做到在。对于上述排序问题,您需要能够“计数”以找出数字在线性排序中的正确位置。aσk<aσj(aσk,aσj)k<ĴAC0
戴勒

0

我相信FP是您想要的。


好吧,我是在寻找相关的决策复杂性类,而不是功能性类,但是即使如此,我还是可以肯定,比较排序在P-complete(或FP-complete)附近是不可能的,所以我期望预计将在/完成的较小班级。
米奇

我不知道完整性是您提出问题的条件之一。作为决策问题(如果不考虑完整性约束),为什么P不可以作为答案?使用DTM,您可以在多项式时间内生成和验证证书。
Nicholas Mancuso

给定一个普遍的问题,我通常想知道的不仅是多项式时间,而且是可能存在的最小类。我想知道它是否在LOGCFL,NL,L,AC_0等中。是您“做不到”更好的一种方法。因此,尼特不是我的问题的要求,但答案中可能是有可能的。
米奇
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.