質問: アルゴリズムに関する質問です。 1~300までの数字がランダムに並べられている配列があるとします。 その配列のうち最も大きい数値上位10個(この場合291~300)を新しい配列に格納したいと思っています。 ちなみに最初のランダムな数値の配列はソートする必要は必ずしもないとします。 最も効率よく取得するにはどういう方法がよいでしょうか?
回答: こちらは参考になるでしょうか。 ●C++編(標準ライブラリ) 第19章 ソートのアルゴリズム > ○partial_sort() > partial_sort()は部分ソートを行います。このアルゴリズムは、例えば上位10 個の要素が正しくソートされてさえいれば、それより後ろの要素の並びはどうでもいい、というときに使えます。 > > ●開発メモ: トップNソートの検討 - FAL Labs ●heap sortを使った上位ランキング取得プログラム - 遙かへのスピード ...