首页
题库
面试
求职
学习
竞赛
More+
所有博客
搜索面经/职位/试题/公司
搜索
我要招人
去企业版
登录 / 注册
首页
>
试题广场
>
一组记录的关键值为(46,79,56,38,40,84),则
[填空题]
一组记录的关键值为(46,79,56,38,40,84),则利用快速排序的方法,以第一个记录的关键值46为基准得到的一次划分结果为
1
.
查看正确选项
添加笔记
求解答(0)
邀请回答
收藏(71)
分享
纠错
4个回答
添加回答
8
城枫墨凉
快速排序:
[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
想当offer收割机的芒果2025
答案是:[40, 38, 46, 56, 79, 84]。快速排序的关键思想是分治。选择一个基准pivot,默认选择数组左边第一个数。然后实现:pivot处于左边的值都比自己小,右边的值都比自己大的位置,也就是分区。通过使用双指针left和right遍历数组,首先从右边往前,找比pivot小的值与left位置进行交换,然后从left开始往后,找比pivot大的值与right进行交换,直到left>=right结束循环,并且返回pivot所在位置,也即是此时的left或者right值。递归处理数组区间:arr[left0,pivotIndex-1],arr[pivotIndex+1,right0],直到left0>=right0,退出递归。最后得到的arr数组就是有序的。
发表于 2024-09-23 16:55:18
回复(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校招数据...
上传者:
小小
难度:
4条回答
71收藏
7643浏览
热门推荐
相关试题
下面描述中,符合结构化程序设计风格...
搜狐
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
PHP工程师
2018
评论
(1)
设一组初始记录关键字序列为(30,...
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
测试工程师
安全工程师
2018
奇安信
评论
(1)
若用冒泡排序对关键字序列{10,8...
Java工程师
C++工程师
iOS工程师
安卓工程师
运维工程师
前端工程师
算法工程师
测试工程师
安全工程师
2018
奇安信
评论
(1)
已知一算数表达式的中缀表达式为 a...
唯品会
算法工程师
2018
评论
(2)
来自
唯品会2018校招数据结...
8瓶水中1瓶有毒,用动物测试。毒发...
唯品会
算法工程师
2018
评论
(20)
来自
唯品会2018校招数据结...
扫描二维码,关注牛客网
意见反馈
下载牛客APP,随时随地刷题