加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

将5个数的序列排序,不论原先的顺序如何,最少都可以...

(2016-09-22 15:32:33)
标签:

竞赛

排序

数论

分类: 竞赛
(NOIP2006普及组)将5个数的序列排序,不论原先的顺序如何,最少都可以通过( )次比较,完成从小到大的排序。
 A. 6 B. 7 C. 8 D. 9 

方法一:http://tieba.baidu.com/p/4071322403
5个数,a、b、c、d、e
第一次比较a、b,不妨设a>b
第二次比较c、d,不妨设c>d
第三次比较a、c,不妨设a>c


这个时候有结果a>b且a>c>d
关键的时候到了,千万不要让b提前排序,这样会浪费掉1次。


第四次比较c,e
第五次(e>c,则e与a比较;e<c,则e与d比较)
第五次结束后会形成以下四种情况之一:(另已知a>b)
1、e>a>c>d
2、a>e>c>d
3、a>c>e>d
4、a>c>d>e


情况1、e>a>c>d
第六七次用b分别与c,d比较就行。


情况2、a>e>c>d
第六次,b与c比较
第七次(b>c,则b与e比较;b<c,则b与d比较)


情况3、a>c>e>d(方法同情况2继续六七次)
情况4、a>c>d>e(方法同情况2继续六七次)

方法二:(http://bbs.csdn.net/topics/40399878
例证法只能证明“可以”用7次比较完成,不能证明“至少”。

5个元素的全排列为5!=120,每次比较都可以把这些排列均分为二,则6次比较可以把排列分为2^6= 64组。因此必然至少有两个不同排列分在同一组,而这两个排列顺序不同,无法用同一交换序列完成排序。因此,无法用小于7次的比较次数完成排序。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有