首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >经典算法题:排序算法

经典算法题:排序算法

作者头像
五分钟学算法
发布2019-10-23 16:59:17
发布2019-10-23 16:59:17
1.4K0
举报
文章被收录于专栏:五分钟学算法五分钟学算法

题目描述

用某种排序方法对关键字序列(25,84,21,47,15,27,68,35,20)进行排序,序列的变化情况采样如下:

代码语言:javascript
复制
20,15,21,25,47,27,68,35,84
代码语言:javascript
复制
15,20,21,25,35,27,47,68,84
代码语言:javascript
复制
15,20,21,25,27,35,47,68,84

请问采用的是以下哪种排序算法()

A. 选择排序

B. 希尔排序

C. 归并排序

D. 快速排序

题目解析

这道题目很好的考察了大家对排序方法过程的理解程度。

对于题目给出的四个选项,很容易就能排除 选择排序,因为对于 选择排序 而言它的操作是 第一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后再从剩余的未排序元素中寻找到最小(大)元素,然后放到已排序的序列的末尾。

代码语言:javascript
复制
20,15,21,25,47,27,68,35,84

序列中 20 不是最小的记录,故排除 选择排序

接下来的三个选项实际上挺难抉择的,我们首先来回顾一下它们三个的动画。

希尔排序

归并排序

快速排序

对于 希尔排序 而言,需要知道 增量 ,根据动画我们可以理解为 gap = 4

先分为四组。

代码语言:javascript
复制
25 15
代码语言:javascript
复制
84 27
代码语言:javascript
复制
21 68
代码语言:javascript
复制
47 35

对这四组分别进行插入排序,加上剩下的 20 变成了

代码语言:javascript
复制
15 27 21 35 25 84 68 47 20

与题目给出的步骤不同,故排除 希尔排序

再来看归并排序动画,逻辑操作就简单了。

先一分为二。

代码语言:javascript
复制
25,84,21,47,15,27,68,35,20

变成了

代码语言:javascript
复制
25,84,21,47

代码语言:javascript
复制
15,27,68,35,20

第二步应该是(这里与动画稍许不同,没有切分到底)

代码语言:javascript
复制
15 25 27 68 35 20 84 21 47

与题目给出的步骤不同,故排除 归并排序

所以,答案选 D :快速排序。

问题来了,你知道标定点是哪个数字吗?可以留言说说哟。

---

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-10-18,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 五分钟学算法 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 题目描述
  • 题目解析
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档