バブルソートの解答例2 【Javaのサンプルコード】

Print Friendly, PDF & Email

ここでは、当社の新人研修受講者に向けて、Javaのサンプルコードを紹介しています。

バブルソートの解答例2

以下のバブルソートは冗長な繰り返しがある。

フラグ(flg)を使って冗長な繰り返しをなくすように書き換えよ。

(配布の擬似言語をJavaに移植すること)

public class ArgoSortBubble1 {

    public static void main(String[] args) {
        int[] data = {15, 5, 20, 34, 23};
        sort(data);
        for (int element : data) {
            System.out.print(element + " ");
        }
    }

    public static void sort(int[] tbl) {
        int cnt = tbl.length - 1;
        while (cnt > 0) {
            int i = 0;
            boolean flg = false;
            while (i < cnt) {
                if (tbl[i] > tbl[i + 1]) {
                    int tmp = tbl[i];
                    tbl[i] = tbl[i + 1];
                    tbl[i + 1] = tmp;
                    flg = true;
                }
                i++;
            }
            if (flg) {
                cnt--;
            } else {
                cnt = 0;
            }
        }
    }
}

もちろん、単に並べ替えを実現したいのでしたらArraysクラスのsortメソッドが手っ取り早いです。

これは、単なるアルゴリズム習得用の演習です。

import java.util.Arrays;

public class ArgoSortBubble2 {

    public static void main(String[] args) {
        int[] data = {15, 5, 20, 34, 23};
        Arrays.sort(data);
        for (int element : data) {
            System.out.print(element + " ");
        }
    }
}

 

参考:

なし