首页 > 其他 > 详细

64匹马8个跑道分多少次可以排出速度快的前四匹

时间:2019-08-28 13:07:54      阅读:111      评论:0      收藏:0      [点我收藏+]
  • 如果计时的话,场数最少,即分八组,跑一轮按时间成绩来排那么就是八场
  • 如果不计时且排名没有并列,
  • 假设,有一棵未排序的树T,其根节点下有64个叶子节点其deep为2,现在每次可取8个节点进行排序
  • 第一步:左从往右取下8个叶子节点排序,那么排完后该八个节点组成按从大到小一颗八层的子树,挂到根节点最左边位置,因为剩下的叶子节点和该子树为排序,所以是并列的关系
  • 第二步:继续从左往右取下8个节点,此时取下的是左1节点的为根节点的子树A和7个叶子节点,参与排序的为A树的根节点,排序后,可按此排序的最大节点为根节点的新的子树B,子树A根据其根节点A在B中的位置合并到子树B上。,然后树B挂回根节点左1位置,
  • 重复步骤,直到树T的第一层的节点数为1,那么继续在树的第二层执行以上重复步骤,直达树T的1,2,3,4层节点数都为1,那么则选出了速度前4的四匹马。

  • 由此可看出:当每次生成的子树的0,1,2,3,层都只有一个节点时,那么只要迭代完树T的第一层,即可得出结果,表现在赛场上的是上一轮的第一名在下一次排名前四名以外。然后可算出场数为,(64-8)/7 +1 = 9
  • 排出前四的最慢情况为:每次生成的子树的层数最少,导致重复的层数会增多。即比赛的场次增多。表现在赛场上的是上一轮的第一名在下一次排名中也是排名第一,然后可算出常数为:
      • 树T第一层 9场
      • 树T第二层,9个元素,最少要两场,第一场生成的子树只有一种。应为所有的子树都是相同的。此时共有 10场
        •  比完第一层,树T的第二层只有两个节点,那么可以选树T的第三层 3个节点,还是不够,第四层 4个节点。2 + 3+3 =8个节点。此时共11场
        •  那么则完成了 树的2,3层
        •    按最坏的情况,此时第四层还有,3个节点,再比一次,则决出第四层,此时共12场
  • 按上述步骤:可得出64匹马的每匹马的排序。最快为每棵子树的层最大,即每次的上一次第一名,是下一次的最后一名,共9场
      •     

 

64匹马8个跑道分多少次可以排出速度快的前四匹

原文:https://www.cnblogs.com/xushouyi/p/11422962.html

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