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

标签 algorithm sorting recursion complexity-theory

如果我们想以 9:1 的比例划分子问题,如何找到描述快速排序成本的递归关系?

我正在寻找的快速排序算法如下:

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

最佳答案

Quicksort 使用随机选择的主元,因此很难保证比率接近 9:1,除非您尝试多个主元并在每个主元上花费线性时间以找出主元给出的比率。但是,我们假设您使用线性时间中值发现的确定性线性时间顺序统计泛化。那么,你的递归关系就是

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

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

关于algorithm - 我怎样才能找到递归关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25211215/

相关文章:

c - 从输入的字符数组中查找所有可能的单词(排列)

python - 从树递归返回值列表

递归 purrr::modify_depth() 不适用于参差不齐的列表

java - 为简单阈值分类器寻找多类阈值

python - 在不改变顺序的情况下找到最小的乘积和

c - 算法 c 求和 2 和 5 的倍数

java - 如何按字母顺序对名称数组列表进行排序,但以数字开头的名称必须排在最后

algorithm - 当段落包含Elasticsearch索引中的句子时匹配

php - 如何按键值对包含 stdClass 对象的多维数组进行排序?

algorithm - R按反转排序的实现