找出N個數組中第二大的數?
從n個數里面找最大的兩個數理論最少需要比較的次數為:n+logn-2解析一:類似比賽晉級,兩兩配對比較,贏的再兩兩配對,最后得到冠軍(最大的數),可以看成是一棵二叉樹,以4人為例:0020123可以看出,找出最大的數比較次數是n-1。然后第二大的數肯定是跟冠軍比較過的數字,那么很明顯每一層都有一個,所以有logn-1次比較。所以總共是n+logn-2次比較。解析二:冒泡法找最大比較次數為n-1,然后再在之前每一次比較的結果里面找第二大的數,比較的次數為logN,需要減去最后一次最大數的比較,即求第二個數是logN-1,結果就是n+logn-2。
上一篇如果不去考研