遺伝的アルゴリズムを使って最適配置を探すプログラムをC++にて作ろうとしています。質問自体は遺伝的アルゴリズムの本質からは離れます。V[N]の要素の値を比較して、その値が小さいものから、順番にE個分の添え字を取り出したいと考えています。N=5、E=2とするとV[5]={1.7,2.5,3.4,10.5,8.1,2.0}から、0と5を選んでほしいのです。if(V[i]<temp){temp=V[i];}}上記のような方法で最小値や、その添え字を選ばせることはできます。2番目に小さい値はどこ?3番目は?で困っています。2週間ほど前にもお世話になりました。その時のプログラムは、おかげさまでほぼ完成することができました。ところが、挙動に不満点があり、改良をしています。時間がある時にお力をお貸しください。丁寧にコードまでありがとうございます!書いていただいたコードのn++をs++に置き換えれば理解できたと思います。要するに、一時に保存しておいた最小値と比較して同じものなら、採用しないと。それなら、次々と検出できそうですね!わかりやすい説明まで書いていただき、本当にありがとうございます。素早い返信で感謝しています。解決したのなら、そのコードを提示してほしいものです。さんのプログラムは、かなり改変しないとダメな気がします。放り込めば、ソートが完了します。解決後であるにもかかわらず返信ありがとうございます。私はコードを丸パクリしたくないので、考え方を聞いて、それをもとにコードを書いてみようと思っています。実際時間はかかるかもしれませんが、jayさんのやり方でできそうだと理解したので、解決!とさせていただきました。添え字に関しては、最後のifの中で、求めている最小値を見つけた時に、iを他のところにストックしておけばいいと考えました。そのコード自体はまだできてません。添え字部分は下記です。}そして、かずま様のコードはとてもありがたいことに、このまま利用ができました。非常にシンプルで簡潔なもので、素晴らしいです。私がC++にて作ろうとしているのですが、mapを勉強していません。したがって、コードのトレースができません。この機会に勉強してみます。いい機会ですし、間違いなくこの機会に勉強すべきでしょう。std::partial_sortに,値を配列の添字とみなして,配列の値の比較を行うラムダ式等と共に放り込むなんて方法も。std::nth_element上位N個が欲しい。N個の順序は問わないstd::partial_sort上位N個が欲しい。std::partial_sortに,値を配列の添字とみなして,配列の値の比較を行うラムダ式等と共に放り込むなんて方法も。効率がよさそうですね。ミクプラは自由にリンクできます。