作为输入,您将得到n个不同数字的未排序数组,其中n是2的幂。给出一种算法,该算法标识数组中第二大的数字,并且最多使用n + log 2(n)-2个比较。
示例:由8个数字组成的数组[10,9,5,4,11,100,120,110]。
在级别1上进行比较:[10,9]-> 10 [5,4]-> 5,[11,100]-> 100, [120,110] -> 120。
在级别2上进行比较:[10,5]-> 10 [100,120] -> 120。
在级别3上进行比较: [10,120] -> 120。
最大值为120。立即与之比较:10(在3级上),100(在2级上),110(在1级上)。
步骤2应该找到最大值10、100和110。即110。这是第二大元素。