对于一个含有n个元素的数组,使用快速排序算法,下列哪种情况下的时间复杂度最接近于其平均情况下的O(n log n)?
答案解析
核心考点说明:本题考察快速排序算法的时间复杂度及其影响因素,重点是理解基准元素的选择如何影响算法效率。解题思路分析:快速排序的平均时间复杂度为O(n log n),这通常在基准元素能将数组较为均匀地划分为两个子数组时发生。当基准元素是中位数时,划分最为均匀,接近理想情况。完全排序或完全逆序的情况会导致较差的划分。如果每次选择最大或最小元素,则每次只会将子问题规模减1,导致最坏情况。每个选项的详细分析:A. 错误。当数组已经排序时,如果基准元素选择不当(例如总是选择第一个或最后一个),会导致最坏情况O(n^2)。B. 错误。完全逆序的情况与完全排序类似,会导致较差的划分和O(n^2)时间复杂度。C. 正确。当基准元素是中位数时,每次划分都能将数组均匀分成两部分,达到接近O(n log n)的平均时间复杂度。D. 错误。选择最大或最小元素会导致划分不均匀,每次只减少一个元素的规模,时间复杂度退化为O(n^2)。易错点提醒:容易误认为任何情况下的快速排序都是O(n log n),忽略了基准元素的选择对算法效率的影响。答案的关键依据是理解快速排序的平均时间复杂度来自于基准元素能较为均匀地划分数组,而中位数能保证较为均衡的划分。
正确答案:C