首页计算机考试计算机软件水平考试数据库系统工程师(中级)
(简答题)

快速排序的最坏情况如何改进?

正确答案

待排序的序列为有序序列时快速排序的效率很低,蜕变为冒泡排序了,为了避免这种情况,选序列的首元素为枢轴元素(或称基准元素)改为选序列的首元素、中间元素和末元素3个元素中中间大的元素为基准元素(简单的就用中间元素为基准),这可大大改善快速排序的性能。
将i、j指的内容比较,若i的内容比基准小,i推进,否则i停下,开始进行j的比较;若j的内容比基准大,j推进,否则j停下,将i的内容与j的内容交换,重复上述过程,直至j<i止,将基准与i的内容交换,一次分段完成。

答案解析

相似试题

  • (单选题)

    任何一个基于"比较"的内部排序的算法中,若对6个元素进行排序,在最坏情况下所需的比较次数至少为()

    答案解析

  • (单选题)

    一组记录的关键码为(46,79,56,38,40,84),则采用快速排序的方法,以第一个记录为基准得到的一次划分结果为()

    答案解析

  • (填空题)

    对于一个具有n个元素序列如果采用快速排序,那么所需的最少比较次数是(),所需的最大比较次数是(),且此序列为()序列。

    答案解析

  • (单选题)

    在内部排序中,通常要对被排序数据进行多次扫描。各种排序方法有不同的排序实施过程和时间复杂性。对给定的整数数列 (541,132,984,746,518,181,946,314,205,827)进行从小到大的排序时,采用冒泡排序和简单选择排序时,若先选出大 元素,则第一次扫描结果分别是__(1)__,采用快速排序(以中间元素518为基准)的第一次扫描结果是__(2)__。 设被排序的序列有n个元素,冒泡排序和简单选择排序的时间复杂度是__(3)__;快速排序的时间复杂度是__(4)__。

    答案解析

  • (单选题)

    在内部排序中,通常要对被排序数据进行多次扫描。各种排序方法有不同的排序实施过程和时间复杂性。对给定的整数数列 (541,132,984,746,518,181,946,314,205,827)进行从小到大的排序时,采用冒泡排序和简单选择排序时,若先选出大 元素,则第一次扫描结果分别是__(1)__,采用快速排序(以中间元素518为基准)的第一次扫描结果是__(2)__。 设被排序的序列有n个元素,冒泡排序和简单选择排序的时间复杂度是__(3)__;快速排序的时间复杂度是__(4)__。

    答案解析

  • (单选题)

    在内部排序中,通常要对被排序数据进行多次扫描。各种排序方法有不同的排序实施过程和时间复杂性。对给定的整数数列 (541,132,984,746,518,181,946,314,205,827)进行从小到大的排序时,采用冒泡排序和简单选择排序时,若先选出大 元素,则第一次扫描结果分别是__(1)__,采用快速排序(以中间元素518为基准)的第一次扫描结果是__(2)__。 设被排序的序列有n个元素,冒泡排序和简单选择排序的时间复杂度是__(3)__;快速排序的时间复杂度是__(4)__。

    答案解析

  • (单选题)

    对于给定的一组关键字(12,2,16,30,8,28,4,10,20,6,18),按照下列算法进行递增排序,写出每种算法第一趟排序后得到的结果:希尔排序(增量为5)得到__(1)__,快速排序(选第一个记录为基准元素)得到__(2)__,基数(基数为10)排序得到__(3)__,二路归并排序得到__(4)__,堆排序得到__(5)__。

    答案解析

  • (单选题)

    对于给定的一组关键字(12,2,16,30,8,28,4,10,20,6,18),按照下列算法进行递增排序,写出每种算法第一趟排序后得到的结果:希尔排序(增量为5)得到__(1)__,快速排序(选第一个记录为基准元素)得到__(2)__,基数(基数为10)排序得到__(3)__,二路归并排序得到__(4)__,堆排序得到__(5)__。

    答案解析

  • (单选题)

    对于给定的一组关键字(12,2,16,30,8,28,4,10,20,6,18),按照下列算法进行递增排序,写出每种算法第一趟排序后得到的结果:希尔排序(增量为5)得到__(1)__,快速排序(选第一个记录为基准元素)得到__(2)__,基数(基数为10)排序得到__(3)__,二路归并排序得到__(4)__,堆排序得到__(5)__。

    答案解析

快考试在线搜题