开发者社区 问答 正文

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

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

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

    首先,比较树中的元素

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

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

    2020-02-09 11:53:31 举报
    赞同 评论

    评论

    全部评论 (0)

    登录后可评论
问答地址:
AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等