| 网站首页 | 业界新闻 | 群组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 编程论坛
共有 387 人关注过本帖
标题:快速排序算法的疑问
只看楼主 加入收藏
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.027863 second(s), 9 queries.
Copyright©2004-2018, BCCN.NET, All Rights Reserved