以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 计算机考研交流 』   (http://bbs.xml.org.cn/list.asp?boardid=67)
----  [求助]怎样用7次比较排序5个整数啊?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=67&rootid=&id=55862)


--  作者:lionx
--  发布时间:11/23/2007 10:23:00 AM

--  [求助]怎样用7次比较排序5个整数啊?
设计程序,用不多于7次比较排5个整数怎么排啊?
--  作者:Logician
--  发布时间:11/23/2007 11:15:00 AM

--  
下面是starfish大虾当年的一个回帖:

---------------------------------------------------
5个数通过7次比较排序的方法如下。

5个数之间的大小关系构成的一个树形图T。T中的一个结点代表一个数,而一条边代表它所关联的两个数的大小关系,T的根就是中位数。显然T中的一条边要由一次比赛来确定。在下面的图中,如果x大于y,则节点x在节点y的上方且x和y有一条边相连。另外,*表示一般的数,o表示下一次即将进行比较的两个数。

第1步,先任取两个数比较,结果为:

  *
  |
  * o o *

第2步,再取另外两个数比较,结果为:

  o  o
  |  |
  *  *  *

第3步,按照上图比较其中两个标记为o的数,比较结果只有一种情况:

   *
  / \  
o   *
|  
*      o

第4步,按照上图比较其中两个标记为o的数,比较结果有两种情况:

o   o                 *
\ / \               / \  
  *   *             *   *
  |                / \
  *               o   o                   

第5步,按照上图比较其中两个标记为o的数,比较结果有两种情况:

   *           *
   |          / \  
   *         *   o
  / \        |
o   o       o
|           |
*           *

第6步,按照上图比较其中两个标记为o的数,比较结果有三种情况:

  *         *         *
  |         |        / \  
  *         *       o   o
  |         |        \ /  
  *         *         *
  |        / \        |
  *       o   o       *
  |
  *
其中第一种情况已经排好序了
第7步,按照上图比较其中两个标记为o的数,比较结果只有一种情况:

  *
  |
  *
  |
  *
  |
  *
  |
  *

所以只需要7步比较就可以把5个数排好序


--  作者:lionx
--  发布时间:11/23/2007 11:47:00 AM

--  
哦,谢谢,记得看过的,就是找不到了
--  作者:buddha
--  发布时间:11/24/2007 12:43:00 PM

--  
应该考不到这样难的题目吧.
毕竟考试才3小时,如果以前没看过这个题目,靠自己想的话.
貌似一般人是很难想出来的吧..
--  作者:zhangzijun
--  发布时间:11/27/2007 10:57:00 AM

--  
第五步第一种情况不太理解,如果左0小于右0呢?
--  作者:zhangzijun
--  发布时间:11/27/2007 10:58:00 AM

--  
哦,懂了
--  作者:zshao
--  发布时间:11/28/2007 6:25:00 PM

--  这个题目哪里出现的?
RT
--  作者:lionx
--  发布时间:11/28/2007 7:07:00 PM

--  
DS习题书上
--  作者:buddha
--  发布时间:11/30/2007 12:43:00 PM

--  
貌似是06年上课时作业中的思考题.
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
265.015ms