论坛首页 综合技术论坛

讨论一个算法,GOOGLE的一个面试题

浏览 59969 次
精华帖 (8) :: 良好帖 (2) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2008-10-28  
楼上的没有明确回答出至少多少场要比。看不明白至少要多少
0 请登录后投票
   发表时间:2008-10-28  
Elminster 写道
《算法导论》第二版,第九章 Medians and Order Statistics,最后一节。那里介绍了一个算法如何通过分组比较来找出一个数组中第 k 大的元素。稍微变一下就是这个问题。

(另:这个是 Google 面试题?不太像啊)



请教下用这个理论是怎么解的?


我只能通过推理来算,大概是至少比9场吧。
0 请登录后投票
   发表时间:2008-10-28  
必须进行的五场比赛就不说了。从第六场比赛开始吧:在每组的第一名进行第六场的比赛,然后第一名直接晋级,再由第一名所在对的下一名和剩下的四匹马进行比赛,以此类推,五轮比赛后即可得出跑的最快的无匹马。
0 请登录后投票
   发表时间:2008-10-28  
n/m+y
哈哈
0 请登录后投票
   发表时间:2008-10-28  
superloafer,你在上面说,M6正好跑了第七场的第一名结果就出来了,不会吧,其它组也有可能有比M6还要快的呀?应该比下去吧?
0 请登录后投票
   发表时间:2008-10-28  
jackyqiang 写道
n/m+y
哈哈

有可能是n/m+y+1,
0 请登录后投票
   发表时间:2008-10-29  
我觉得至少是6场,5场完了,万一第一场的第5名跑的比后4场的还快,那不是6场就出来了 呵呵,大家觉得呢
0 请登录后投票
   发表时间:2008-10-29  
记得有人发了一个意思差不多的题,可以参考一下,那个好像是面试ruby开发的吧
0 请登录后投票
   发表时间:2008-10-29  
是7场;
前面5场,让所有的马跑一次;
标记每场的第一名为: A,B,C,D,E; 标记此5匹马为 first梯队
标记每场的第二名为: a,b,c,d,e; 标记此5匹马为 second梯队
第6场, 让 second梯队 跑一次; 标记 顺序为 1,2,3,4,5;
第7场, 让 第6场中跑第1,3,5名的马对应在  first梯队 和 第2,4名在second梯队跑一次
就可以最终确定 前5名马了.
0 请登录后投票
   发表时间:2008-10-29  
zhangkaitao 写道
我觉得至少是6场,5场完了,万一第一场的第5名跑的比后4场的还快,那不是6场就出来了 呵呵,大家觉得呢


题目中问的是"至少"不是"最少"; 你描述的只是特例;
0 请登录后投票
论坛首页 综合技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics