Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

配列の内容をソートする

import java.io.*;

class Sample055
{
    public static void main(String[]args) throws IOException
        {
        
        
        BufferedReader br =
        new BufferedReader(new InputStreamReader(System.in));
            
        int [] test = new int[5];
        System.out.println(test.length +
            "人の点数を入力してください。");
            for(int i=0; i<test.length; i++){
            String str = br.readLine();
            test[i] = Integer.parseInt(str);
            
        }
        
        for(int s=0; s<test.length-1; s++){
            for(int t=s+1; t<test.length; t++){
                if(test[t]>test[s]){
                    int tmp = test[t];
                    test[t] = test[s];
                    test[s] = tmp;
                    }
            
                }
            
            }
        for(int j=0; j<test.length; j++){
            System.out.println((j+1)+"番目の人の点数は"+
                test[j] + "です。");
        }        
    }
}

C:\javaSample>java Sample055
5人の点数を入力してください。
22
80
57
60
50
1番目の人の点数は80です。
2番目の人の点数は60です。
3番目の人の点数は57です。
4番目の人の点数は50です。
5番目の人の点数は22です。

確かにプログラム通りやると出来るのですが、
何か比較して値を求めているのは分かりますが
どうやっているのか分かりません。
この場合どうやって理解したら良いのでしょうか。

2

回答

197

閲覧

2件の回答

評価

0

どうやってと言われてもな…。
1ステップずつ、変数の中身を表示してみたらどうだ?

評価

0

ソートアルゴリズムは色々種類がありますが、バブルソートですね
いろんなサイトで可視化(アニメ化)されているので、それらの動きをイメージして
ソースを追いかけると理解しやすいかもしれません。
参考:http://qiita.com/r-ngtm/items/f4fa55c77459f63a5228#%E3%83%90%E3%83%96%E3%83%AB%E3%82%BD%E3%83%BC%E3%83%88

回答する

ログインしていません。

ログインしなくても回答はできますが、ログインすると、質問・回答の管理、更新があった場合のメールでの通知を受けることができます。 アカウントをお持ちでない方は会員登録を行ってください。

ユーザ名匿名