📜  算法|排序|问题2

📅  最后修改于: 2021-06-29 18:19:57             🧑  作者: Mango

假设我们有一个O(n)时间算法,该算法可以找到未排序数组的中位数。

现在考虑一个QuickSort实现,在该实现中,我们首先使用上述算法找到中位数,然后将中位数用作数据透视。此修改后的QuickSort的最坏情况下的时间复杂度是多少?
(A) O(n ^ 2 Logn)
(B) O(n ^ 2)
(C) O(n登录登录)
(D) O(nLogn)答案: (D)
说明:如果我们使用中位数作为枢轴元素,则对于每次迭代,需要O(n)时间从给定函数查找中位数,并且每次将数组划分为2个子部分时。
所以递归方程变成了

T(n)= 2T(n / 2)+ O(n)

可以使用“主方法”解决以上重复问题。在主方法的情况2下
这导致复杂度O(nlogn)。
这个问题的测验