Java 对0和1的数组进行排序&;带o(1)的2s
我们是否可以对复杂度为O(1)的0、1和2数组进行排序Java 对0和1的数组进行排序&;带o(1)的2s,java,sorting,Java,Sorting,我们是否可以对复杂度为O(1)的0、1和2数组进行排序 {0,1,2,0,1,2,0,1,2,2,1,0,1,1,2,2,0,0}排序算法始终依赖于n,因此不能在O(1)中对整个数组进行排序 关于排序算法的计算时间,请参阅以下引用: 元素比较的计算复杂性(最差、平均和最佳行为) 列表的大小(n)。对于典型的串行排序算法很好 行为是O(n logn),在O(log2n)中有并行排序,并且是坏的 行为是O(n2)。(参见大O符号)串行通信的理想行为 排序是O(n),但这在平均情况下是不可能的,即最优
{0,1,2,0,1,2,0,1,2,2,1,0,1,1,2,2,0,0}
排序算法始终依赖于n,因此不能在O(1)中对整个数组进行排序
关于排序算法的计算时间,请参阅以下引用:
元素比较的计算复杂性(最差、平均和最佳行为)
列表的大小(n)。对于典型的串行排序算法很好
行为是O(n logn),在O(log2n)中有并行排序,并且是坏的
行为是O(n2)。(参见大O符号)串行通信的理想行为
排序是O(n),但这在平均情况下是不可能的,即最优的
并行排序是O(logn)。基于比较的排序算法,
它通过抽象键比较来评估列表中的元素
操作时,大多数输入至少需要O(n logn)比较
没有排序永远不会小于O(n),因为你至少要检查数组是否已经排序。@garima你知道O(1)是什么吗?如果你想一想你必须做什么,你就会意识到没有办法像Icewind所说的那样在排序上有O(1)的复杂性。不管你在排序什么,你至少要确认它是按顺序排列的,也就是O(n),并且通常要根据它的方法对它进行排序,它的复杂度在不同的范围内。你可以对这个特殊的数组进行排序
返回{0,0,0,0,0,0,1,1,1,1,1,2,2,2,2}
。不知道它是否算数。甚至这也需要O(n)才能返回。在没有任何先验知识的情况下,你不能在O(1)中做这件事。