プログラミングのお題スレ Part3
■ このスレッドは過去ログ倉庫に格納されています
0648デフォルトの名無しさん
2014/05/04(日) 23:51:23.23ID:onUxYY9Oそれを思いついたのでフローだけ書いておきます。
できたら報告ください。これは、問題では無いです。
リングバッファとソートバッファを用意します。
リングバッファにはデータを。ソートバッファには0〜Nの1刻みの数字で初期化します。
ソートバッファは、リングバッファのインデックスの列です。
それで、リングバッファのi番目の列とj番目の列を比較できるようにします。
comp(ring,Sort[i],Sort[j])>0;的な
リングバッファの方は絶対改変しませんので、安心して比較できます。
それを使ってソートしましょう。
比較後交換されるデータはソートバッファの方です。
if(IsSwap) std::swap(Sort[i],Sort[j]);
まぁ、俺の実力ではコムソート位が限界なのでコムソートを実装します。
それで、Ring[Sort[i]-1]がソート後のほしいデータ列です。
ソートバッファの中の0が先頭です。ソートバッファの0があるインデックスを返しましょう。
と、言うものですが、ドウでしょうか。
■ このスレッドは過去ログ倉庫に格納されています