重複の可能性:
比較数が最小の配列で 2 番目に大きい要素を見つける
O(n+logn) 時間で最大数と 2 番目に大きな数を検索する方法を教えてください。前もって感謝します。
よろしく、 ピディグ
重複の可能性:
比較数が最小の配列で 2 番目に大きい要素を見つける
O(n+logn) 時間で最大数と 2 番目に大きな数を検索する方法を教えてください。前もって感謝します。
よろしく、 ピディグ
n + log(n) - 2 回の比較を意味していると思います。
これがその方法です。
要素を 2 つのグループで比較します。つまり、それぞれ 2 つの要素からなる n/2 グループを作成します。
このように n/4、n/8、n/16 などと続けて、最初の (最大の) 要素を取得します。
次に大きい要素は、このメソッドの最初の要素の敗者の中になければなりません。したがって、これについてさらに log(n) 回の比較が行われます。
正確には、これには n + log(n) - 2 回の比較が必要です。
あなたは実際にそれをO(n)
時間内に行うことができます:選択アルゴリズム