01
表記とPythonで読む
5つの数を小さい順に並べ替えます。外側の繰り返し1回で、残りの中でいちばん大きい値が右端に決まります。
共通テスト用プログラム表記
Data = [5, 3, 8, 1, 4]kazu = 要素数(Data)i を 0 から kazu - 2 まで 1 ずつ増やしながら繰り返す:|j を 0 から kazu - 2 - i まで 1 ずつ増やしながら繰り返す:||もし Data[j] > Data[j + 1] ならば:|||tmp = Data[j]|||Data[j] = Data[j + 1]⎿⎿⎿Data[j + 1] = tmpi を 0 から kazu - 1 まで 1 ずつ増やしながら繰り返す:⎿表示する(Data[i])
Python書き換えて実行できます
▶ 実行 を押すと、ここに結果が出ます
共通テストの表記どおりなら、次のように表示されます。
1 3 4 5 8
02
外側の繰り返しごとの配列
内側の繰り返しの終わりが kazu - 2 - i になっているのは、外側を1回通すごとに右端から1つずつ並べ終わるからです。並べ終わった部分は、もう比べる必要がありません。4回目は入れ替えが起きませんが、このプログラムは決まった回数だけ繰り返します。
| i | 終わったときのData | 入れ替えた回数 |
|---|---|---|
| 0 | [3, 5, 1, 4, 8] | 3 |
| 1 | [3, 1, 4, 5, 8] | 2 |
| 2 | [1, 3, 4, 5, 8] | 1 |
| 3 | [1, 3, 4, 5, 8] | 0 |
03
練習問題
外側の繰り返しの1回目(i = 0)が終わったとき、Data はどうなっていますか。
- [3, 5, 1, 4, 8]
- [1, 3, 4, 5, 8]
- [3, 1, 4, 5, 8]
- [5, 3, 8, 1, 4]
答えと解説を見る
答え 11回目は j = 0 から 3 まで隣どうしを比べます。5と3を入れ替え、5と8はそのまま、8と1を入れ替え、8と4を入れ替えるので [3, 5, 1, 4, 8] になります。いちばん大きい8が右端に移ったところで1回目が終わります。
04
書き換えて試す
上のPythonのコードを書き換えて、もう一度実行してみましょう。
- 条件の > を < に変えて、大きい順に並ぶことを確かめる
- 外側の繰り返しの中に print(Data) を足して、上の表と同じになるかを見る
- 入れ替えが1回も起きなかったら、そこで繰り返しを終えるように変える
05
ほかの練習
表記の出典: 大学入試センター「令和7年度大学入学共通テスト 試作問題『情報』の概要」。問題とデータはLaibraのオリジナルです。