首页 > 编程语言 > 详细

对5个数进行排序,需7次比较的方法

时间:2015-04-15 17:12:25      阅读:196      评论:0      收藏:0      [点我收藏+]

本文介绍一个对5个数进行排序的方法,仅使用7次比较。假设要排序的数为a,b,c,d,e。

        首先将a,b进行比较,假设结果为a<b,再将c,d进行比较,假设结果为c<d;然后将两组数的较大者进行比较(即比较b,d),假设结果为b<d,于是就有下面的关系,箭头的关系表示“<”,即"小于",至此,已经进行了三次比较

技术分享,这个图的含义为:a<b<d,c<d

        现在将e插入到{a,b,d}的适当位置,采用二分查找法寻找查找位置时,只需要两次比较——先同b比较,然后再同a或d比较。将e插入到{a,b,d}时,一共有下面四中结果:

技术分享

        在这四中情况中,要将c插入到由[abcd]组成的序列中最多只需要两次比较。同样使用二分法寻找插入位置。以第一种情况为例:c首先同a比较,如果大于a,再同b比较,如果大于b,则不会再同d比较,因为我们在之前已经知道c<d。


参考文献:计算机程序设计艺术,第三卷,Page:174

完毕



对5个数进行排序,需7次比较的方法

原文:http://blog.csdn.net/x_i_y_u_e/article/details/45059725

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!