快速排序复杂性计算

时间:2013-05-02 04:40:11

标签: algorithm time-complexity quicksort

  1. 如果数组的所有元素具有相同的值,q的快速排序返回的分值是多少? myAns:O(n ^ 2)
  2. 案例数组中的快速排序算法已按要求排序。 myAns:O(n ^ 2)
  3. 案例数组中的快速排序算法已按要求的相反顺序排序。 myAns:O(n log n)
  4. 假设用于快速排序的分区算法将元素分成1-α和α,其中0 <1。 α≤1/ 2,α是常数。导出递归关系并计算其复杂性。 myAns:O(n log n)
  5. 请同时回答:

    讨论用于快速排序中使用的数组的Hoare分区算法,并使用合适的示例。

2 个答案:

答案 0 :(得分:2)

请说明将来您的问题。

您需要指定您正在使用的枢轴 - 我猜您总是使用第一个分区元素作为枢轴,在这种情况下,您对2和3的答案是正确的,但如果您使用中间分区元素或随机分区元素然后你的2的答案是不正确的(预期的运行时间将是n log n)。

你对4的回答很明确 - alpha需要考虑你的复杂性分析。如果alpha = .5则复杂度为n log n,但如果alpha = 1 / n则复杂度为n ^ 2。您可能应该提供您派生的递归关系。

答案 1 :(得分:0)

  1. 取决于您实施快速排序的方式。

  2. 取决于枢轴选择策略。

  3. 取决于枢轴选择策略。

  4. 右。