[java]バブルソートアルゴリズム


泡の位置合わせ(=昇順)
:2つの要素の比較とシフトのソート
:配列アルゴリズム
ルール#ルール#
:最初から最後まで巡回し、すべての要素を比較
:現在表示されている数値と次の値を比較し、右側(末尾)に大きな値を格納します.
:1番と2番、2番と3番...比較後、最後の場所に最大値が保存されます.
:巡回は一度だけではなく、値が移行しないまで繰り返します.

1.形態

for (int i = 0; i < list.length; i++) {
	for (int j = 0; j < list.length - i - 1; j++) {
    		// 만약 j번 인덱스에 에 저장된 숫자가 다음 인덱스에 저장된 숫자보다 크다면
            	// ex. 0번 인덱스에 있는 7이 / 1번 인덱스에 있는 4 보다 크다면
		if (list[j] > list[j + 1]) {
        		// tmp 변수에 j 를 복사한다
			int temp = list[j];
           		// j 자리에는 j+1번의 숫자를 복사해주고
			list[j] = list[j + 1];
            		// j+1번의 자리에는 tmp에 저장된 j의 수를 붙여넣기 한다
			list[j + 1] = temp;
		}			
	}
}

2.試用


int list[] = { 1, 6, 7, 8, 3 };

for (int i = 0; i < list.length; i++) {
	for (int j = 0; j < list.length - i - 1; j++) {
		if (list[j] > list[j + 1]) {
			int temp = list[j];
			list[j] = list[j + 1];
			list[j + 1] = temp;
		}
	}
}

for (int i = 0; i < list.length; i++) {
	System.out.print(list[i] + ", ");
}
実行結果

注意:[Ajava]バブルソートアルゴリズム