バブルソートのアルゴリズムについて、骨格となるループ処理部分をVBAで表現した処理イメージです。
バブルソートのループ処理イメージ
Sub バブルソートのループ処理イメージ()
Dim i As Integer, j As Integer, N As Integer
N = 10 '配列数
For i = 1 To N - 1 Step 1
For j = N To i + 1 Step -1
Debug.Print "i=" & i & " i+1=" & i + 1 & " j=" & j & " j-1=" & j - 1
Next j
Next i
End Sub
実行結果
i=1 i+1=2 j=10 j-1=9
i=1 i+1=2 j=9 j-1=8
i=1 i+1=2 j=8 j-1=7
i=1 i+1=2 j=7 j-1=6
i=1 i+1=2 j=6 j-1=5
i=1 i+1=2 j=5 j-1=4
i=1 i+1=2 j=4 j-1=3
i=1 i+1=2 j=3 j-1=2
i=1 i+1=2 j=2 j-1=1
i=2 i+1=3 j=10 j-1=9
i=2 i+1=3 j=9 j-1=8
i=2 i+1=3 j=8 j-1=7
i=2 i+1=3 j=7 j-1=6
i=2 i+1=3 j=6 j-1=5
i=2 i+1=3 j=5 j-1=4
i=2 i+1=3 j=4 j-1=3
i=2 i+1=3 j=3 j-1=2
i=3 i+1=4 j=10 j-1=9
i=3 i+1=4 j=9 j-1=8
i=3 i+1=4 j=8 j-1=7
i=3 i+1=4 j=7 j-1=6
i=3 i+1=4 j=6 j-1=5
i=3 i+1=4 j=5 j-1=4
i=3 i+1=4 j=4 j-1=3
i=4 i+1=5 j=10 j-1=9
i=4 i+1=5 j=9 j-1=8
i=4 i+1=5 j=8 j-1=7
i=4 i+1=5 j=7 j-1=6
i=4 i+1=5 j=6 j-1=5
i=4 i+1=5 j=5 j-1=4
i=5 i+1=6 j=10 j-1=9
i=5 i+1=6 j=9 j-1=8
i=5 i+1=6 j=8 j-1=7
i=5 i+1=6 j=7 j-1=6
i=5 i+1=6 j=6 j-1=5
i=6 i+1=7 j=10 j-1=9
i=6 i+1=7 j=9 j-1=8
i=6 i+1=7 j=8 j-1=7
i=6 i+1=7 j=7 j-1=6
i=7 i+1=8 j=10 j-1=9
i=7 i+1=8 j=9 j-1=8
i=7 i+1=8 j=8 j-1=7
i=8 i+1=9 j=10 j-1=9
i=8 i+1=9 j=9 j-1=8
i=9 i+1=10 j=10 j-1=9
処理のポイント
変数 i と j のトレース結果より、バブルソートでは配列の要素を比較しながら端から順に最小値(または最大値)を確定させていく様子が確認できます。
また、大小比較においては「ある起点」と「起点から隣り合う値」を比較していく仕組みを把握することができます。
この記事の更新履歴
この記事は、生成AIを活用した自動レビュー・更新フローにより内容を見直し、必要な修正を反映しています。
2026年10月2日
- 変更引用タグや不自然なプレーンテキストとなっていたコードブロックと実行結果を、正しく視認できるHTML構造へ修正しました。
- 追加バブルソートのループ処理がどのように動作するかを理解しやすくするための解説文を追加しました。

