这个P参数有什么问题

问题描述 投票:1回答:2

我的老师提出了这个论点,并问我们这可能有什么问题。

对于n个不同数字的数组A。既然有n! A的排列我们无法检查每个排列是否在总时间内进行排序是n中的多项式。因此,排序A不能在P中。

我的朋友认为这应该是:因此,不能在NP中对a进行排序。是它还是我们正在考虑轻松解决它?

data-science computer-science polynomial-math np computation
2个回答
0
投票

此参数的问题是它未能充分指定确切的问题。

如果要排序从一个小池中提取的一大堆整数(计数排序,基数排序),排序的元素数可以是线性时间(O(n))。

排序可以是要排序的元素数的线性运算时间(O(nlogn)),如果要排序的是根据某种排序关系(例如,小于或等于在整数上)。

必须以另一种方式分析基于偏序的排序(例如拓扑排序)。

我们可以想象像排序这样的问题,其中无法仅通过比较相邻条目来确定列表的排序。在极端情况下,只能通过检查整个列表来验证排序(根据我们认为要排序的内容)。如果设计我们的排序方式是为了确保任何给定列表中只有一个排序的排列,则时间复杂度是阶乘时间(O(n!)),并且问题不在P中。

这是此论点的真正问题。如果您的教授假设“排序”是指对不在任何特定小范围内的整数进行排序,则该参数的问题在于,我们不需要考虑所有排列即可构建排序的整数。如果我有一个装有100个弹珠的袋子,并且要求您取出三个弹珠,那么时间的复杂性就是固定时间。可以通过n(n-1)(n-2)/ 6 = 161700或O(n ^ 3)来完成此任务。


0
投票

参数是非必填项,结论从逻辑上讲不是从前面的步骤得出的。为什么不跟随?要对该问题给出满意的答案,需要知道为什么撰写论据的人[[thinks

© www.soinside.com 2019 - 2024. All rights reserved.