这个题很多人在没看过的情况下突然被面试官问及可能耗时较久,最近面试遇到了这个题,结合网上答案讲总结一下
第一步:25匹马分别编号 A1,A2,A3,A4,A5 B1,B2…
每一组进行比试进行排序,每组淘汰后两名(因为只有3个名额)

每组第一名分别为A1,B1,C1,D1,E1 (共比试5次得出)
第二步:每组第一比试一次,比如顺序为(A1>B1>C1>D1>E1 )得出第一和淘汰最后两名的列(小组第一都进不了前三,所以这一列都不会有前三产生)

第三步:因为C1比B1慢(所以C列只可能产生第三名),第二三名产生者可能是 A2,A3,B1,B2,C1 (为什么没有B3?因为此时只剩下两个名额),所以第7次由 A2,A3,B1,B2,C1赛跑,选出前两名,这样就得出前三名

最终需要跑7次
上述不难发现,把所有马每5匹比试一次后得到一个矩阵(A1>B1>C1>D1>E1 )

第二名: A2 , (A2, B1)
第三名:(A2 / B1)A3,B2,C1
第四名:第三名的参赛元素排除第三名后加上 A4,B3, C2, D1
第五名:…同上
上述所说规律是产生的范围值
本文介绍了一种在仅比较有限次数的情况下找出25匹马中最快的三匹马的方法。通过将马匹分组比赛并逐步缩小候选范围,最终确定前三名。此策略涉及排序与淘汰过程。

被折叠的 条评论
为什么被折叠?



