📜  门| GATE CS 2008 |第43章

📅  最后修改于: 2021-06-29 23:15:46             🧑  作者: Mango

考虑快速排序算法。假设有一个查找数据透视元素的过程,该元素将列表分成两个子列表,每个子列表至少包含元素的五分之一。令T(n)为对n个元素进行排序所需的比较次数。然后

(A) T(n)<= 2T(n / 5)+ n
(B) T(n)<= T(n / 5)+ T(4n / 5)+ n
(C) T(n)<= 2T(4n / 5)+ n
(D) T(n)<= 2T(n / 2)+ n答案: (B)
说明:对于一个子集中n / 5个元素的情况,对于具有n / 5个元素的第一个子集,需要进行T(n / 5)比较,对于其余4n / 5个元素,则需要T(4n / 5)比较,并且n用于查找支点。

如果一个集合中的元素数大于n / 5,则另一集合中的元素数小于4n / 5,时间复杂度将小于T(n / 5)+ T(4n / 5)+ n,因为递归树将是更平衡。
这个问题的测验