| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2126 人关注过本帖
标题:快速排序算法的疑问
只看楼主 加入收藏
bubble_soup
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2018-1-21
结帖率:0
收藏
 问题点数:0 回复次数:4 
快速排序算法的疑问
快速排序的pivot怎么选取?
据说是三数中值法。
那第一个pivot应该选最左边、最右边、还是中间的那个数字呢?

另外,pivot的选取为什么不能每次都选中间下标对应的那个值呢?这样不就可以避免分歧了吗???
搜索更多相关主题的帖子: 快速排序 算法 疑问 数字 对应 
2018-04-08 21:12
bubble_soup
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2018-1-21
收藏
得分:0 
请大家踊跃发言。有想法都可以说说看。
2018-04-08 21:13
bubble_soup
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2018-1-21
收藏
得分:0 
请大家踊跃发言。有想法都可以说说看。
2018-04-08 21:13
bubble_soup
Rank: 1
等 级:新手上路
帖 子:39
专家分:0
注 册:2018-1-21
收藏
得分:0 
pivot的选取,按照网上的版本最好的还是使用三数中值法。但是为什么不能使用中间下标法(我取的名字)呢?每次都取中间的那个数(整个数据集合的中间下标对应的值)为pivot呢,这样也不会一起歧义/
2018-04-08 21:18
请大师指点
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:3
帖 子:6
专家分:20
注 册:2018-9-13
收藏
得分:0 
它的思路大概是这样的(我用我理解的方式说哈):首先引入两个标签 I,J 分别标记数组的第一个和最后一个位置的元素;(2)我们把第一个位置的元素拿出来和J标记的元素比较,假如J标记的元素比拿出来的元素大呢,J就向前移(即:J-1),假如J标记的元素比拿出来的元素小呢,J所标记的元素就去取代 刚刚空出来的位置。
2018-09-20 18:32
快速回复:快速排序算法的疑问
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019472 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved