【问题标题】:Recurrence for the Worst-Case Running Time of Quicksort快速排序最坏情况运行时间的重现
【发布时间】:2013-06-03 07:15:16
【问题描述】:

假设我们构建了一个快速排序,并且枢轴值需要线性时间。找出最坏情况下运行时间的重现。

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

最坏的情况发生在子数组完全不平衡时。 一个子数组中有 1 个元素,另一个子数组中有 (n-1) 个元素。 theta(n) 因为找到轴需要运行时间 n。

我这样做对吗?

【问题讨论】:

  • 不是 2n?................
  • 我刚刚找到了一个关于递归关系的非常好的教程,似乎是一个很好的资源:@​​987654321@
  • @Nathan 非常好的资源。我了解如何一次性解决递归关系。谢谢

标签: algorithm math quicksort recurrence


【解决方案1】:

您的递归大部分是正确的,但实际上您并没有进行两次递归调用。在快速排序的最坏情况下,枢轴将是数组中最大或最小的元素,因此您将递归一个大小为 n - 1 的巨型数组。另一个子数组的长度为 0,因此不会进行递归调用。最重要的是,完成的总工作是每个级别的 Θ(n),因此递归关系更合适

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

然后这会求解到 Θ(n2)。

希望这会有所帮助!

【讨论】:

    【解决方案2】:

    你无法观察,因为根据我的研究 T(N)= T(N-K)+T(K-1)+n 在我们得到之前,我们无法观察到确切的值 k的值,

    【讨论】:

      【解决方案3】:

      T(n) = T(an/(a+b)) + T(bn/(a+b)) + n

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-01-12
        • 2018-01-28
        • 1970-01-01
        • 2021-01-09
        • 1970-01-01
        • 2015-01-20
        • 2014-12-30
        相关资源
        最近更新 更多