面试算法题:16个数,最多用20次比较,找出第二大的数?


这是题主面试遇到的一个算法题,当时想的时候是按照没有相同的数来做的,希望看到大家的分析和做法。

PS:假如这里16个数有重复的情况又该怎样做?
已邀请:

16个数两两比较,8次
胜出8个数再两两,4次
4个,2次,
2个,1次
得到最大A,第二大的应该是和A比较过的数,从第一轮开始共4个数,3次得到其中最大的,则为第二大
总共为18次?

没细想,回头验证正确性

要回复问题请先登录注册

返回顶部