のさまざまな実装の予想実行時間と最悪の場合の実行時間の両方を知っている人はいstd::nth_element
ますか?私はこのアルゴリズムをほぼ毎日使用しています。
最近のMicrosoftコンパイラに同梱されているSTLバージョンに特に興味がありますが、このトピックに関する情報は役に立ちます。
これはこの質問の複製ではないことに注意してください。どのアルゴリズムが存在するかは理解していますが、どの実装がどのアルゴリズムを使用しているかに興味があります。
背景として、これを行うためのよく知られたアルゴリズムがあります。1つはO(n)平均ケースとO(n log n)ワーストケースで、もう1つはO(n)ワーストケースですが、実際には遅いです(中央値の中央値)。また、実際には高速な最悪の場合のO(n)実行時間を取得するための興味深い実装戦略の話があることにも注意してください。標準では、これはO(n)平均時間よりも悪いはずであるとされています。