入门客AI创业平台(我带你入门,你带我飞行)
博文笔记

[面试题]用最少的比较次数找出一个数组中的最大值和次大值

创建时间:2012-09-26 投稿人: 浏览次数:3086

如题,且无重复元素

用分治法,把数组分成2组,2组内分别用两两比较淘汰的方法找出各自的最大值(一共n-1次比较), 最后出来的2个最大值比较,较大的那个是最大值,第二大的值在较小的那个和所有跟最大值比较过的元素(一共log_2 n -1个)之间产生。只需用较小的那个 和 log_2 n -1个与最大值比较过的元素分别比较一次 (这里又需要log_2 n-1 次比较) 就行了。所以最终的比较次数为(logn+n-2)。
阅读更多
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
  • 上一篇:没有了
  • 下一篇:没有了
未上传头像