ソート
情処三大ソート
1. 選択ソート(+音声解説)
Dim data(10) As Integer
Dim i, j As Integer
Dim maxIndex As Integer
Dim temp As Integer
Call SetData(data)
'(降順)
For i = 1 To UBound(data) - 1
maxIndex = i '未整列部分の先頭を最大値候補とする(*1)
For j = i + 1 To UBound(data)
'比較演算子により、昇順・降順が決まる
If data(j) > data(maxIndex) Then
maxIndex = j '(*2)
End If
Next j
'交換(*3)
temp = data(i)
data(i) = data(maxIndex)
data(maxIndex) = temp
Next i
' ソート結果出力
For i = 1 To UBound(data)
Debug.Print data(i)
Next i
🚀 選択ソート(Selection Sort)特徴
- 内側ループでは最小値または最大値の位置を探している。
- 内側ループでは交換を行わず、位置の記録のみをおこなっている。
- 内側ループ終了後、現在の位置と記録した位置を1回だけ交換している。
- 最小値または最大値の探索は内側ループ、 交換は外側ループで1回だけ行う。
VOICEVOX:四国めたん
📝データ 設定/出力
Sub SetData(ByRef data() As Integer)
data(1) = 34
data(2) = 7
data(3) = 23
data(4) = 32
data(5) = 5
data(6) = 62
data(7) = 78
data(8) = 4
data(9) = 12
data(10) = 11
End Sub
78
62
34
32
23
12
11
7
5
4
2. 挿入ソート(+音声解説)
Dim data(10) As Integer 'data(0) 一時変数
Dim i, j As Integer
Call SetData(data)
'(降順)
For i = 2 To UBound(data)
data(0) = data(i) '比較元(*1)
j = i - 1
Do While j >= 1
'比較演算子により、昇順・降順が決まる
If data(j) < data(0) Then
data(j + 1) = data(j) '(*3)
j = j - 1 '(*2)
Else
Exit Do
End If
Loop
data(j + 1) = data(0) '上書き(*4)
Next i
' ソート結果出力
For i = 1 To UBound(data)
Debug.Print data(i)
Next i
🚀 挿入ソート(Insertion Sort)特徴
- 内側ループの処理前に比較元データを一時変数に記憶している。
- 内側ループではStep -1 や 処理変数を -1させている。
- 前の要素を右にずらしている。
- 内側ループが終了すれば、一時変数の値を 処理変数+1の値に上書きしている。
VOICEVOX:四国めたん
📝データ 設定/出力
Sub SetData(ByRef data() As Integer)
data(1) = 34
data(2) = 7
data(3) = 23
data(4) = 32
data(5) = 5
data(6) = 62
data(7) = 78
data(8) = 4
data(9) = 12
data(10) = 11
End Sub
78
62
34
32
23
12
11
7
5
4
3. バブルソート(+音声解説)
Dim data(10) As Integer
Dim i, j As Integer
Dim maxIndex As Integer
Dim temp As Integer
Call SetData(data)
'(降順)
For i = 1 To UBound(data) - 1
For j = UBound(data) To i + 1 Step -1 '(*2)
'比較演算子により、昇順・降順が決まる
If data(j - 1) < data(j) Then
'交換(*1)(*3)
temp = data(j)
data(j) = data(j - 1)
data(j - 1) = temp
End If
Next j
Next i
' ソート結果出力
For i = 1 To UBound(data)
Debug.Print data(i)
Next i
🚀 バブルソート(Bubble Sort)特徴
- 条件を満たせば即座に交換している。
- 外側ループに応じて内側ループが短くなる。
- 大きい値または小さい値が 内側ループ範囲の最後尾に移動する。
VOICEVOX:四国めたん
📝データ 設定/出力
Sub SetData(ByRef data() As Integer)
data(1) = 34
data(2) = 7
data(3) = 23
data(4) = 32
data(5) = 5
data(6) = 62
data(7) = 78
data(8) = 4
data(9) = 12
data(10) = 11
End Sub
78
62
34
32
23
12
11
7
5
4
4. 過去問【4】
📦出力画面

📘 ダウンロード教材について
この教材は、全国商業高等学校協会の情報処理検定の過去問題をもとに作成された、
学習支援用のマクロ付きExcelファイルです。
- マクロは 売上集計や平均点の計算など、検定形式に沿った処理を行います。
- 外部との通信やファイル操作は一切行いません。
- 教育目的で無償提供しており、改変・再配布はご遠慮ください。
ご利用の際は、マクロを有効にする必要があります。学校のPCで使用する場合は、先生にご確認ください。
| ファイル名 | サイズ (KB) | ダウンロード |
|---|---|---|
| 第72回【4】問2.zip | 12 | |
| 第71回【4】問1.zip | 14 | |
| 第70回【4】問2.zip | 12 |