当比较函数不是O(1)时,排序alg的时间复杂度是多少?

时间:2017-08-08 04:10:54

标签: time-complexity

据我所知,当比较函数为O(N*log(N))时,有效的排序时间复杂度为O(1)

如果比较函数不是O(1)(即O(M)),那么时间复杂度是多少?

O(N*log(N*M))还是O(N*M*log(N))

由于

2 个答案:

答案 0 :(得分:2)

如果每次比较需要O(M)时间 - 与O(1)时间相反,则整个排序将花费M倍更长的时间来完成 - O(M * N log N)。这假设M与N一起生长并且不是恒定的。常量通常从大的符号(O(常数)== O(1))中删除,因此这种情况下的复杂性将保持不变。这也假设你的O(Y)排序算法按照O(Y)的顺序进行比较,就像大多数排序算法那样。

答案 1 :(得分:0)

在有效排序alg中,我们有(N)个项目和每个项目 我们进行了O(LOG N)比较。排序的结果是:O(N* LOG N)。 如果比较为O(1),我们会:O(1*N) = O(N)进行排序。

可以在并行计算机体系结构上并行排序alg。 但是在unparalel计算机中,不可能有O(1*N)