题目
对一组数据(2,12,16,88,5,10)进行排序,若前三趟排序结果如下:
第一趟排序结果:2,12,16,5,10,88
第二趟排序结果:2,12,5,10,16,88
第三趟排序结果:2,5,10,12,16,88
则采用的排序方法可能是()。
A.冒泡排序
B.希尔排序
C.归并排序
D.基数排序
解答
参考答案:A.
题中所给的三趟排序过程中,每一趟排序是从前往后依次比较,使最大值“沉底”,符合冒泡排序的特点。
看第一趟可知仅有88被移到最后。
l 如果是希尔排序,则12,88,10应变为10,12,88。因此排除希尔排序。
l 如果是归并排序,则长度为2的子序列是有序的。因此可排除归并排序。
l 如果是基数排序,则16,5,10应变为10,5,16。因此排除基数排序。
提示:对于此类题,先看备选项的排序算法有什么特征,再看题目中的排序过程是否符合这一特征,从而得出答案。一般先从选项中的简单排序方法(插入排序、起泡排序、选择排序)开始判断,若简单排序方法不符合,再判断排序方法(希尔排序、快速排序、堆排序、归并排序)。
只有懂得基本原理和协议规范的程序员才能摆脱搬砖码农这个束缚。
现在互联网各个职位的壁垒已经有了,再也不是稍微会点就能入行的年代了,现在的职位一脚开始拒绝培训班出来的人了,除非你有自己的作品或者有工作经验才行。