問題
{30, 355, 24, 12, 98, 72, 5, 76, 60, 35, 54, 62, 2, 12, 35}の数値配列を昇順にソートするプログラムを作りなさい。
ソート方法は挿入ソートを使いなさい。
そもそも挿入ソートがわからない方はヒント1を参照してください。
なるべくヒント2以降見ないように、自力で解いてください。
答えはこちら
ヒント
ヒント1:挿入ソートとは
ヒント2:ロジックの考え方
配列の長さ分だけ処理を繰り返すfor文の中で
n番目とn-1番目を比べて、n-1番目が大きい場合、n番目の値とn-1番目を交換するロジックを作ります
ヒント3:ロジックの考え方
n番目とn-1番目を比べて、n-1番目が大きい場合、n番目の値とn-1番目を交換するロジックはwhile文を使います。
このwhile文はn番目とn-1番目を比べて、n-1番目が大きい間処理を繰り返すようにします。
while文の中の処理で、n番目の値とn-1番目を交換するロジックを作ります。
答えはこちら
答え
答え
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
package javalogic; public class JavaLogic3 { public static void main(String[] args) { int [] array = {30, 355, 24, 12, 98, 72, 5, 76, 60, 35, 54, 62, 2, 12, 35}; //配列のn番目の数とn+1番目の数の大小を比較 for(int i=0; i<array.length-1; i++) { for(int j=i+1;j<array.length;j++) { //n 番目の数が n+1 番目の数より大きい場合は、2 つの数の順序を変える if(array[i]>array[j]) { int a = array[j]; array[j]= array[i]; array[i]=a; } } } //配列を出力 for(int i=0;i<array.length;i++) { System.out.print(array[i]+", "); } } } |
コメント