408考研逐题详解:2009年第10题

2009年第10题

若数据元素序列 11,12,13,7,8,9,23,4,5 是采用下列排序方法之一得到的第二趟排序后的结果,则该排序算法只能是( )。

A. 冒泡排序 \qquad B. 插入排序 \qquad C. 选择排序 \qquad D. 二路归并排序

详解

解答本题,需要熟悉题目中所列出的排序算法的特点,即熟悉相关算法的基本知识,特别是排序的实现过程。

  • 冒泡排序:每一趟都能确定一个元素的最终位置。假如是从小到大排序,第一趟之后,在序列的最末端应该得到最大值;第二趟之后,在序列的倒数第 2 位应该是次大值。若是从大到小排序,则第二趟之后倒数第 1 位是序列中最小值,倒数第 2 位是次小值(如下图示例)。从本题已知序列中可以观察到,不论按何种方式排序,题目中的序列均不符合上述特征。故,题目中已知序列不是冒泡排序所得到的第二趟排序后的结果。
    在这里插入图片描述

  • 插入排序:每一趟将一个待排序的记录,按其关键字的大小插入到已经排好序的一组记录的适当位置上,直到所有待排序记录全部插入为止。以直接插入排序为例,第 1 趟取出待排序序列中第 1 个关键字,构成一个已排序的序列(记作 L);第 2 趟取出待排序序列中的第 2 个关键字,将此关键字插入到 L 中,且使 L 成为一个有序序列,也就是比较此关键字与 L 中已有关键字进行比较,并找到合适的插入位置。如此,当第 2 趟排序之后,所得到的序列中至少前两个已经排好序的(如下图示例)。从本题中已知序列可以观察到,序列前两个数值 11、12 符合上述特征。故题目中的序列有可能是插入排序的第二趟排序后的结果。
    在这里插入图片描述

  • 选择排序:每一趟从待排序的记录中选出关键字最小的记录,按顺序放在已排序的记录序列的最后,直到全部排完为止。每趟排序后,已排序的序列中,必然是待排序序列中最小的若干个元素(如下图示例)。以题目所要求,在第二趟排序之后,所得到的序列的前两位,必然是未排序序列中最小的两个,即应该是 4、5。但题目中给出的是 11、 12,由此可知此序列不是选择排序算法所得到的第二趟排序后的结果。
    在这里插入图片描述

  • 二路归并排序:将两个有序表合并成一个有序表的过程。初始将待排序序列中每个关键词视为一个独立的有序表。第一趟归并,即将第 1 和 第 2 个合并,得到由两个关键字组成的有序序列;以此类推合并后续各个关键字(有序表)。如此,第一趟归并后所得到的序列中,第 1 和 第 2 个关键字组成一个有序表(记为“L1”),第 3 和第 4 个关键字组成一个有序表(记为“L2”),等等。第二趟归并,则将前述 L1 和 L2 两个有序表合并,得到由 4 个关键字组成的新的有序表(如下图示例)。所以,如果用二路归并排序算法,第二趟排序之后所得到的序列中,前 4 个关键字应该是有序的,但是本题中已知序列中的前 4 个关键字“11,12,13,7”不符合此要求。故本题中的序列不是二路归并排序所得到的第二趟排序后的结果。
    在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

CS创新实验室

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值