数组中的第二大数字,最多n + log(n)-2个比较

时间:2018-12-13 18:15:03

标签: algorithm big-o divide-and-conquer

当我看到这个问题时,我认为我可以运用分而治之的方法来解决 algorithm chart

她是我的密码 program code很抱歉,我无法在此处编写它,因为我在嵌入式编译器中编写了该文件,但文件未保存

代码运行良好,但是当我计算n比较时,它大于n + log(n)-2

我的问题(问题)是我无法基于特定的运行时间或特定的比较来解决问题,我先解决了问题,然后计算了比较结果

我一般来说不只是针对这个问题

我如何基于运行时间设计(思考)算法,是否有后续步骤或需要什么

1 个答案:

答案 0 :(得分:1)

进行淘汰赛(n - 1比较)。第二大玩家必须是输给冠军的玩家,其中log n个。在log(n) - 1个比较中找到最大的候选者。

最困难的部分是设计一种有效的数据结构,以方便击败对手的清单。这是非常不平凡的。例如,看看Alex Stepanov的solution

PS:我强烈推荐整个course