前提・実現したいこと
processingで数字をランダムに10個生成し、小さい順に並べ替えるソートを作っています。
ソートの順番は次のような手順で並べ替えます。
1.配列の要素を順方向へ順番に見ていく。
2.順序が逆になっている要素を見つけたらその要素を掴む。
3.掴んだ要素を一つ手前の要素と交換する。
「交換した後も順序が逆だったらさらに手前にずらす」
という操作を繰り返します。
4.ずらし終わったら、その位置から再び順方向へ要素を見て行く。
5.配列の最後の要素まで到達したらソート完了。
プログラムを書いたのですが、うまく並び替えることができませんでした。
発生している問題・エラーメッセージ
エラーメッセージはありません。
該当のソースコード
processing
1int D[]; 2int N=10; 3 4void setup(){ 5 D=new int [N]; 6 for(int i=0;i<N;i++){ D[i]=(int)random(100); } 7 noLoop(); 8} 9 10void draw() 11{ 12println("----- before -----"); 13println(D); 14 15for(int c=0;c<N-1;c++){ 16 for(int j=N=0;j<N-1;j++){ 17 if(D[j]>D[j+1]){ 18 int box=D[j]; 19 D[j]=D[j+1]; 20 D[j+1]=box; 21 22 23 } 24 } 25 26 27println("----- after -----"); 28println(D); 29} 30}
試したこと
for文の継続条件式をいじった。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー