题目描述
如题,且无重复元素
思路
用分治法,把数组分成2组,2组内分别用两两比较淘汰的方法找出各自的最大值(一共n-1次比较), 最后出来的2个最大值比较,较大的那个是最大值,第二大的值在较小的那个和所有跟最大值比较过的元素(一共log_2 n -1个)之间产生。只需用较小的那个
和 log_2 n -1个与最大值比较过的元素分别比较一次 (这里又需要log_2 n-1 次比较) 就行了。所以最终的比较次数为(logn+n-2)。
本文介绍了一种利用分治法高效寻找数组中最大值及第二大的方法。通过将数组分成两部分并分别找到每部分的最大值,进而确定整个数组的最大值,并通过比较过程中的记录找到第二大值。
如题,且无重复元素
3232

被折叠的 条评论
为什么被折叠?