我怎样才能找到递归关系?

时间:2014-08-08 19:49:43

标签: algorithm sorting recursion complexity-theory

如果我们想要以9:1的比例对子问题进行分区,我怎样才能找到描述Quicksort成本的递归关系?

我正在寻找的Quicksort算法如下:

Quicksort(A,p,r)
      if p<r then
         q<- partition(A,p,r)
         Quicksort(A,p,q-1)
         Quicksort(A,q+1,r)

1 个答案:

答案 0 :(得分:2)

Quicksort使用随机选择的枢轴,因此很难保证接近9:1比例的东西,除非您尝试多个枢轴并在每个轴上花费线性时间以找出枢轴给出的比率。但是,我们假设您使用线性时间中值发现的确定性线性时间序列统计推广。然后,您的递归关系是

T(n) = T(0.9*n) + T(0.1*n) + O(n)

仍将解决为O(n log n),但隐藏常数会更大。