以下关于快速排序算法的描述中,错误的是( )。在快速排序过程中,需要设立基准元素并划分序列来进行排序。若序列由元素{12,25,30,45,52,67,85}构成,则初始排列为( )时,排序效率最高(令序列的第一个元素为基准元素)。

admin2010-05-08  39

问题 以下关于快速排序算法的描述中,错误的是(  )。在快速排序过程中,需要设立基准元素并划分序列来进行排序。若序列由元素{12,25,30,45,52,67,85}构成,则初始排列为(  )时,排序效率最高(令序列的第一个元素为基准元素)。

选项 A、快速排序算法是不稳定的排序算法
B、快速排序算法在最坏情况下的时间复杂度为0(nlgn)
C、快速排序算法是一种分治算法
D、当输入数据基本有序时,快速排序算法具有最坏情况下的时间复杂度

答案B

解析 最坏情况是每次划分选取的基准都是当前无序区中关键字最小(或最大)的记录,划分的结果是基准左边的子区间为空(或右边的子区间为空),而划分所得的另一个非空的子区间中记录数目,仅仅比划分前的无序区中记录个数减少一个。因此,快速排序必须做n-1次划分,第i次划分开始时区间长度为n-i+1,所需的比较次数为n-i(1≤i≤n-1),故总的比较次数达到最大值:cmax=n(n-1)/2=O(2)在最好情况下,每次划分所取的基准都是当前无序区的“中值”记录,划分的结果是基准的左、右两个无序子区间的长度大致相等。总的关键字比较次数:O(nlgn)
转载请注明原文地址:https://jikaoti.com/ti/6Ua7FFFM
0

相关试题推荐
最新回复(0)