开发者社区> 问答> 正文

在比较次数最少的情况下,找到数组中第二大的元素

对于大小为N的数组,需要进行多少次比较? 问题来源于stack overflow

展开
收起
保持可爱mmm 2020-02-09 11:53:20 442 0
1 条回答
写回答
取消 提交回答
  • 最佳算法使用n + log n-2比较。将元素视为竞争对手,比赛将对其进行排名。

    首先,比较树中的元素

    | /
    | | / \ /
    x x x x 这需要进行n-1次比较,并且每个元素最多要进行n次比较。您将找到最大的赢家。

    第二大元素必须输给赢家(他不能输给其他元素),因此他是赢家所面对的log n元素之一。您可以使用log n-1比较找到其中的哪个。

    2020-02-09 11:53:31
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载