質問: ### 前提・実現したいこと processingで数字をランダムに10個生成し、小さい順に並べ替えるソートを作っています。 ソートの順番は次のような手順で並べ替えます。 1.配列の要素を順方向へ順番に見ていく。 2.順序が逆になっている要素を見つけたらその要素を掴む。 3.掴んだ要素を一つ手前の要素と交換する。 「交換した後も順序が逆だったらさらに手前にずらす」 という操作を繰り返します。 4.ずらし終わったら、その位置から再び順方向へ要素を見て行く。 5.配列の最後の要素まで到達したらソート完了。 プログラムを書いたのですが、うまく並び替えることができませんでした。 ### 発生している問題・エラーメッセージ ``` エラーメッセージはありません。 ``` ### 該当のソースコード ``` int D[]; int N=10; void setup(){ D=new int [N]; for(int i=0;iD[j+1]){ int box=D[j]; D[j]=D[j+1]; D[j+1]=box; } } println("----- after -----"); println(D); } } ``` ### 試したこと for文の継続条件式をいじった。 ### 補足情報(FW/ツールのバージョンなど) ここにより詳細な情報を記載してください。
回答: バブルソートのアルゴリズムですね(定数倍高速化の余地はありますが)。 ``` - for(int j=N=0;j