最坏情况下快速排序运行时间的递归式



假设我们构造了一个快速排序,并且枢轴值需要线性时间。求最坏情况下运行时间的递归式

我的回答:T(n)= T(n-1) + T(1) + (n)

最坏的情况是子数组完全不平衡。一个子数组中有1个元素,另一个子数组中有(n-1)个元素。(n)因为它需要运行时间n来找到主节点

我这样做对吗?

您的递归大部分是正确的,但实际上您并没有进行两次递归调用。在快速排序的最坏情况下,主节点是数组中最大或最小的元素,所以你会在一个大小为n - 1的大数组上循环。另一个子数组的长度为0,因此不进行递归调用。最重要的是,每层完成的总功是Θ(n),因此递归关系更合适为

T(n) = T(n - 1) + Θ(n)

这又解为Θ(n2)。

希望这对你有帮助!

你不能观察,因为根据我的研究,T(N)= T(N- k)+T(K-1)+ N我们不能观察到确切的值,直到我们k的值

T (n) =(一个/(a + b)) + T (bn/(a + b)) + n

其中a/(a+b)和b/(a+b)是所考虑的数组的部分

最新更新