【问题标题】:Recurrence Relation Quicksort重复关系快速排序
【发布时间】:2016-03-11 06:10:55
【问题描述】:

我一直在研究快速排序的递归关系,我可以按照它们如何得到最终的递归关系,但随后它们会跳转到时间顺序。例如:

T(N) = T(N-1) + T(0)+ Theta(sqrt(N))

然后他们跳转到时间顺序:O(Nsqrt(N))

我不知道他们是如何从循环关系到时间顺序的......

【问题讨论】:

  • 基本上,你只是猜对了答案,然后证明你是对的。
  • 但是我对步骤很好奇。

标签: recurrence


【解决方案1】:

递归关系没有明确定义。你需要一个边界条件。让我们假设T(1)=1=sqrt(1)T(0)=0

证明T(N)=O(N*sqrt(N)) 很容易:

T(N) = T(N-1) + Theta(sqrt(N)) = T(N-2) + sqrt(N-1) + sqrt(N)
     = ... = sqrt(N) + sqrt(N-1) + ... + sqrt(1)
     <= N * sqrt(N).

绑定&lt;= N*sqrt(N) 显然成立,因为sqrt(1)&lt;...&lt;sqrt(N-1)&lt;sqrt(N)

因此T(N)=O(N*sqrt(N))

【讨论】:

    猜你喜欢
    • 2012-03-15
    • 2017-11-03
    • 2020-05-10
    • 1970-01-01
    • 2019-09-09
    • 1970-01-01
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多