考虑这个问题:
基于比较的排序算法使用
kubectl get pods --namespace=kube-system
项对数组进行排序。对于n
排列的哪个部分,比较的数量可能是n!
,其中cn
是常数?
我知道使用任意项对数组进行排序的最佳时间复杂度为c
并且它不依赖于任何顺序,对吧?因此,没有导致O(nlogn)
比较的分数。如果我错了,请指导我。
答案 0 :(得分:3)
这取决于您使用的排序算法。
例如,Optimized Bubble Sort比较数组的所有相邻元素,并在左元素大于右元素时交换它们。重复这一过程,直到没有进行交换。
当你给冒泡排序一个排序数组时,它不会在第一次迭代中执行任何交换,因此在O(n)中排序。
另一方面,Heapsort将取O(n log n)而不依赖于输入的顺序。
修改:
要回答您针对给定排序算法的问题,可能并非易事。 n中只有一个!对排列进行排序(为简单起见,假设没有重复)。但是,对于bubblesort的示例,您可以(从排序数组开始)交换每对相邻元素。此输入将使Bubblesort进行两次迭代,这也是O(n)。