插入排序,合并排序和快速排序的最坏情况下的运行时间分别是:
(A) Θ(n log n),Θ(n log n)和Θ(n 2 )
(B) Θ(n 2 ),Θ(n 2 )和Θ(n Log n)
(C) Θ(n 2 ),Θ(n log n)和Θ(n log n)
(D) Θ(n 2 ),Θ(n log n)和Θ(n 2 )答案: (D)
解释:
- 在最坏的情况下,插入排序需要Θ(n 2 ),因为我们需要运行两个循环。需要外循环一个接一个地选择要插入到正确位置的元素。内部循环用于两件事:查找要插入的元素的位置,并将所有已排序的较大元素向前移动一个位置。因此,最坏情况的递归公式为T(n)= T(n-1)+Θ(n)。
- 在所有情况下,合并排序都需要Θ(n Log n)时间。我们总是将数组分为两半,对这两半进行排序并合并。递归公式为T(n)= 2T(n / 2)+Θ(n)。
- 在最坏的情况下,QuickSort取Θ(n 2)。在QuickSort中,我们将一个元素作为枢轴并对其周围的数组进行分区。在最坏的情况下,拾取的元素始终是角元素,并且递归公式变为T(n)= T(n-1)+Θ(n)。发生最坏情况的一个示例场景是,对数组进行排序,并且我们的代码始终选择角元素作为枢轴。
这个问题的测验