一个赛马算法

本文介绍了一种使用堆排序算法解决如何在25匹马中,通过5条跑道找出最快的三匹马的方法。算法通过不断分组比赛,减少比较次数,最终确定最快马匹。代码实现中,定义了Horse类表示马,用堆栈和ArrayList来辅助分组和比赛。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原题:

25匹马,5条跑道,怎样能用最快方式,得到最快的三匹马,假设每匹马的体力保持不变,速度固定。

 

解法,堆排序,如下:

 

运行结果

15 3 25 8 9 4 23 11 19 14 5 18 24 22 13 1 17 16 7 6 12 10 21 2 20 
>>>>第1次:
+100
| +4
| +23
| +11
| +19
| +14
| +5
| +18
| +24
| +22
| +13
| +1
| +17
| +16
| +7
| +6
| +12
| +10
| +21
| +2
| +20
| +25
| | +15
| | | +9
| | | | +8
| | | | | +3
>>>>第2次:
+100
| +5
| +18
| +24
| +22
| +13
| +1
| +17
| +16
| +7
| +6
| +12
| +10
| +21
| +2
| +20
| +25
| | +15
| | | +9
| | | | +8
| | | | | +3
| +23
| | +19
| | | +14
| | | | +11
| | | | | +4
>>>>第3次:
+100
| +1
| +17
| +16
| +7
| +6
| +12
| +10
| +21
| +2
| +20
| +25
| | +15
| | | +9
| | | | +8
| | | | | +3
| +23
| | +19
| | | +14
| | | | +11
| | | | | +4
| +24
| | +22
| | | +18
| | | | +13
| | | | | +5
>>>>第4次:
+100
| +12
| +10
| +21
| +2
| +20
| +25
| | +15
| | | +9
| | | | +8
| | | | | +3
| +23
| | +19
| | | +14
| | | | +11
| | | | | +4
| +24
| | +22
| | | +18
| | | | +13
| | | | | +5
| +17
| | +16
| | | +7
| | | | +6
| | | | | +1
>>>>第5次:
+100
| +25
| | +15
| | | +9
| | | | +8
| | | | | +3
| +23
| | +19
| | | +14
| | | | +11
| | | | | +4
| +24
| | +22
| | | +18
| | | | +13
| | | | | +5
| +17
| | +16
| | | +7
| | | | +6
| | | | | +1
| +21
| | +20
| | | +12
| | | | +10
| | | | | +2
>>>>第6次:
+100
| +25
| | +15
| | | +9
| | | | +8
| | | | | +3
| | +24
| | | +22
| | | | +18
| | | | | +13
| | | | | | +5
| | | +23
| | | | +19
| | | | | +14
| | | | | | +11
| | | | | | | +4
| | | | +21
| | | | | +20
| | | | | | +12
| | | | | | | +10
| | | | | | | | +2
| | | | | +17
| | | | | | +16
| | | | | | | +7
| | | | | | | | +6
| | | | | | | | | +1
--------第1名:25
>>>>第7次:
+25
| +24
| | +23
| | | +21
| | | | +20
| | | | | +12
| | | | | | +10
| | | | | | | +2
| | | | +17
| | | | | +16
| | | | | | +7
| | | | | | | +6
| | | | | | | | +1
| | | +22
| | | | +18
| | | | | +13
| | | | | | +5
| | | | +19
| | | | | +14
| | | | | | +11
| | | | | | | +4
| | | | | +15
| | | | | | +9
| | | | | | | +8
| | | | | | | | +3
--------第2名:24
--------第3名:23

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值