淺談排序演算法-25匹馬賽跑
阿新 • • 發佈:2021-08-17
問題:25匹馬,五個賽道,每個賽道最多允許一匹馬進行比賽,問需要進行多少次比賽可以找出跑得最快的三匹馬?
拓展說下問題,一共是五個賽道,每個賽道上佔一匹馬,一場比賽最多就是五匹馬同時進行.然後跑出各自的時間,A1 A2 A3 A4 A5;
如果再進行下一輪比賽,就是B1 B2 B3 B4 B5...
第一場比賽可以找出跑的第一快的馬,
第二場比賽可以找出跑的本組中第一快的馬
第三場.....
最後得到五組比賽,組內第一的馬;
然後再讓這五匹馬進行一場比賽,最後勝者就是25匹馬中跑的第一快的.
因為最後是找出跑的最快的3匹馬,所以五組中最後的兩匹馬都可以不考慮了,此時參賽馬數(25-1-10=14)
此時超級組中還有4匹馬是全場最快,然後A組中還有未知的4匹馬有可能跑的比B組第一還快的存在;
但是這時候可以淘汰掉D E組的6匹,此時參賽馬數(14-6=8)
進行第六次比賽,此時我們拿跑的最慢的五匹馬進行比賽,取前兩名就夠了;
這樣會淘汰三匹馬,此時參賽馬數(8-3=5)
最後這5匹馬是爭奪第二名和第三名的,跑一次 找出第二塊的馬,(比賽次數5+1=6);
再在剩下的4匹馬中,再進行一次比賽,(比賽次數5+1+1=7),找到第三快的馬;
自此,前三快馬找到,遊戲結束.
不要為了追逐,而忘記當初的樣子。