用某种排序方法对关键字序列(25,84,21,47,15,27,68,35,20)进行排序,序列的变化情况采样如下:
20,15,21,25,47,27,68,35,8415,20,21,25,35,27,47,68,8415,20,21,25,27,35,47,68,84请问采用的是以下哪种排序算法()
A.选择排序
B.希尔排序
C.归并排序
D.快速排序
这道题目很好的考察了大家对排序方法过程的理解程度。
对于题目给出的四个选项,很容易就能排除选择排序,因为对于选择排序而言它的操作是第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。
20,15,21,25,47,27,68,35,84序列中20不是最小的记录,故排除选择排序。
接下来的三个选项实际上挺难抉择的,我们首先来回顾一下它们三个的动画。
对于希尔排序而言,需要知道增量,根据动画我们可以理解为gap=4。
先分为四组。
2515842721684735对这四组分别进行插入排序,加上剩下的20变成了
152721352584684720与题目给出的步骤不同,故排除希尔排序。
再来看归并排序动画,逻辑操作就简单了。
先一分为二。
25,84,21,47,15,27,68,35,20变成了
25,84,21,47与
15,27,68,35,20第二步应该是(这里与动画稍许不同,没有切分到底)
152527683520842147与题目给出的步骤不同,故排除归并排序。
所以,答案选D:快速排序。
如果你觉得这篇内容对你挺有启发,我想邀请你帮我三个忙:
THE END