8个随机整型变量,求最大和第二大元素,需要比较几次?

本文探讨了一种寻找数组中最大及第二大元素的高效算法。通过逐步淘汰法,仅需进行7+2次比较即可得出结果,显著提升了查找速度。

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

题意同题目,一道很简单的面试题,不过最开始我竟然没有想到最优解emmm(太菜了)。
答案在下面,先想想再看答案。
















































8个元素两两比较,比如ABCDEFGH, A和B比,C和D比,以此类推,得出4个优胜者,4个优胜者继续两两比较,得出2个优胜者,2个优胜者再比较,得出最大值。这波操作比较了7次。然后求第二大,除了被第一大干掉的失败者,其它失败者已经输了,因为赢他们的元素不是最大值,所以他们不可能是第二大,那么第二大只能在被最大值干掉的情况中产生,第一大元素在之前的两两比较中干掉了3个元素,这3个元素相互比较2次,就得出第二大了。总共比较7+2次。

7123916-459b7389d2ab254a.jpg
推一波小姐姐手写的推导2333

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值