特殊条件下合并的时间复杂度

时间:2019-05-31 05:21:13

标签: algorithm

如果我将合并排序应用于已经排序的数组,那么时间复杂度是多少?

2 个答案:

答案 0 :(得分:1)

通常的合并排序仍将O(nlogn)用于排序的数据。

但是有natural merge sort变体为排序数组提供线性复杂度。

请注意,自然合并排序还可以为任意数据提供O(nlogn),而与迭代排序相比,它对已排序的数据表现良好,但在最坏的情况下变为二次方

答案 1 :(得分:0)

根据Wikipedia page for merge sort,合并排序具有O(n log n)的最佳和最差情况。给定已排序数组的输入,合并排序仍将需要与其他数组一样经过相同的排序过程。结果,即使对于已排序的数组,运行时间仍将为O(n log n)

对于已经排序的数组,还有其他一些实际优于合并排序的算法,例如插入排序。对于插入排序,已排序数组的性能为O(n),即线性。