考研的备考中,对于历年真题的复习,也是提升考试分数的重要方法。为了让大家更好的积累学习,小编为大家整理了历年考研真题,下面是关于“下列排序算法中,在待排序数据已有序时,花费时间反而最”,希望对大家有更好的帮助。
1、下列排序算法中,在待排序数据已有序时,花费时间反而最多的是( )排序。
A、冒泡排序
B、希尔排序
C、快速排序
D、堆排序
1、试题答案:C
试题解析:
【考点】本题考查排序算法的综合比较。
【解析】分析如下:
A:若序列已有序时,选择冒泡排序进行一趟后,发现两两元素比较并未发生交换,即可确定此时序列已经有序,排序结束。
B:若序列已有序时,选择排序每一趟排序过程中都没有元素交换,直到步长为1时,整个排序过程结束。
C:在快速排序中,通过基准元素把序列分成两个部分,一般选择第一个元素为基准元素。若序列已经有序,进行第一趟排序时,第一个元素(最小元素)作为基准会将整个序列分成两部分,左部分为空,右部分为剩余元素。第一趟排序时,左部分无需排序,右部分继续进行快速排序,选取右部分第一个元素作为基准将整个序列分成两部分,左部分为空,右部分为剩余元素。这一过程中,每次分块只减少一个元素,n个元素需要进行n-1次分块才能结束整个快速排序,浪费时间耗时更长。这是快速排序最糟糕的情况,时间复杂度为O(n²)。
D:堆排序的最好、最坏、平均时间复杂度都是O(nlogn)。
综上所述,在待排序数据已有序时,花费时间反而最多的是快速排序。故本题选C。
以上“下列排序算法中,在待排序数据已有序时,花费时间反而最”,更多关于考研真题内容将不断更新。
