首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
一组记录的关键值为(46,79,56,38,40,84),则
[填空题]
一组记录的关键值为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录的关键值46为基准得到的一次划分结果为
1
.
查看答案及解析
添加笔记
求解答(0)
邀请回答
收藏(68)
分享
纠错
3个回答
添加回答
7
城枫墨凉
快速排序:
[46,79,56,38,40,84 ] ,base:46
| |
left right
1.第一步:从right位置往左找到第一个比46小的数,
如果找到,将此数赋给left位置
left和right指针分别为前后的40。
[40,79,56,38,40,84]
| |
left right
2.第二步:从数组的left位置向后找,找到第一个比46大的数,
如果找到,将此数赋给right的位置
[40, 79, 56, 38, 79, 84]
| |
left right
3.重复第一步:从right位置往左找到第一个比46小的数,
如果找到,将此数赋给left位置
[40, 38, 56, 38, 79, 84]
| |
left right
4.重复第二步:从left位置往右找到第一个比46大的数,
如果找到,将此数赋给right位置
[40, 38, 56, 56, 79, 84]
| |
left right
5.重复第一步:从right位置往左找到第一个比46小的数,
没有找到,left和right位置重合
[40, 38, 56, 56, 79, 84]
|
left&&right
将base值插入,完成一次排序
[40, 38, 46, 56, 79, 84]
发表于 2018-01-09 13:24:16
回复(0)
0
神拳小江南_南七
这里说的以46为基准是指以46为轴,小于46的排在46左边,大于46的排在右边。46 79 56 38 40 84
第一次:从最右边往左边扫描,找到第一个比46小的数,将其交换得到 40 79 56 38 46 84
第二次:从最左边往右扫描,找到第一个比46大的数,将其交换得到 40 46 56 38 79 84
第三次:从最右边往左边扫描,找到第一个比46小的数,将其交换得到 40 38 56 46 79 84
第四次:从最左边往右扫描,找到第一个比46大的数,将其交换得到 40 38 46 56 79 84
到这里发现比46小的数都在46左边,比46大的都在右边也就是一次划分。
发表于 2018-04-07 15:25:20
回复(0)
0
Seeker98
快速排序第一步是从后往前,元素移动方向与对应指针移动方向相同,即,假设i从1向后,j从n-1向前,i指针找到元素后,将该元素后移至j位置,j同理前移。
发表于 2018-02-02 15:28:11
回复(0)
这道题你会答吗?花几分钟告诉大家答案吧!
提交观点
问题信息
算法工程师
唯品会
2018
来自:
唯品会2018校招数据...
上传者:
小小
难度:
3条回答
68收藏
6606浏览
热门推荐
相关试题
通过构建有序序列,对于未排序数据,...
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
测试工程师
安全工程师
2018
奇安信
评论
(0)
下面描述中,符合结构化程序设计风格...
搜狐
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
2018
评论
(1)
设一组初始记录关键字序列为(30,...
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
测试工程师
安全工程师
2018
奇安信
评论
(1)
一棵完全二叉树中有65个结点,则该...
唯品会
算法工程师
2018
评论
(1)
来自
唯品会2018校招数据结...
以下是链表的特点的是
唯品会
算法工程师
2018
评论
(1)
来自
唯品会2018校招数据结...
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题