double d のセットが多数 (数十万、m) あり、長さは ~5-10 (n、constant small ) です。これらの double は、基本的にランダムに分散されます。各セットの中央値を取得する必要があります: m が非常に大きいため、中央値をかなり迅速に計算する必要があります...これらのセットはかなり小さいですが、方法を選択する際に重要な役割を果たすと思います中央値。nth_elementを使用して、選択アルゴリズムを使用して O(n) の中央値を取得できることはわかっていますが、これは複雑ではありません。ただし、定数 n が小さいため、単純にオーバーヘッドが最も小さい方法を探しているのでしょう。
中央値を実行するさまざまな方法を見つけましたが(以下)、ここで使用する「正しい」方法を誰かが知っていれば、単なる好奇心です。
最小最大ヒープ(O(n) ビルド時間、一定のアクセス、おそらくオーバーヘッドが多すぎる)
This question from 2010 which may be out of date (新しい STL/Boost コードは既にこのようなものを実装している可能性があります) も、オーバーヘッドよりも時間の複雑さに重点を置いています。