未整列の配列a [i](i = 1, 2, …, n)を、流れ図で示すアルゴリズムによって昇順に整列する。
n = 6でa [1]〜a [6]の値がそれぞれ、21、5、53、71、3、17の場合、流れ図において、a [j - 1]とa [j ]の値の入替えは何回行われるか。
ア | 3 |
イ | 6 |
ウ | 8 |
エ | 10 |
答え ウ
【解説】
流れ図に沿って処理を行う。(数字の並び:21, 5, 53, 71, 3, 17)
ループ1:i = 1
ループ2:j = 6
3<17:入替えない(数字の並び:21, 5, 53, 71, 3, 17)
ループ2:j = 5
71>3:入替える(1回目)(数字の並び:21, 5, 53, 3, 71, 17)
ループ2:j = 4
53>3:入替える(2回目)(数字の並び:21, 5, 3, 53, 71, 17)
ループ2:j = 3
5>3:入替える(3回目)(数字の並び:21, 3, 5, 53, 71, 17)
ループ2:j = 2
21>3:入替える(4回目)(数字の並び:3, 21, 5, 53, 71, 17)
ループ1:i = 2
ループ2:j = 6
71>17:入替える(5回目)(数字の並び:3, 21, 5, 53, 17, 71)
ループ2:j = 5
53>17:入替える(6回目)(数字の並び:3, 21, 5, 17, 53, 71)
ループ2:j = 4
5<17:入替えない(数字の並び:3, 21, 5, 17, 53, 71)
ループ2:j = 3
21>5:入替える(7回目)(数字の並び:3, 5, 21, 17, 53, 71)
ループ1:i = 3
ループ2:j = 6
53<71:入替えない(数字の並び:3, 5, 21, 17, 53, 71)
ループ2:j = 5
17<53:入替えない(数字の並び:3, 5, 21, 17, 53, 71)
ループ2:j = 4
21>17:入替える(7回目)(数字の並び:3, 5, 17, 21, 53, 71)
※処理としてはこの後も続くが、この時点で整列されたので、以下は省略する。
したがって、入替えの回数は8回(ウ)である。
【キーワード】
・流れ図