【問題】
未整列の配列aiを、流れ図で示すアルゴリズムによって昇順に整列する。n=6でa[1]~a[6]の値がそれぞれ21,5,53,71,3,17の場合、流れ図において、a[j-1]とa[j]の値の入替えは何回行われるか。
開始
┃
ループ1 i:1,1,n-1
┃
ループ2 j:n,-1,i+1
┃
a[j-1] > a[j] NO ━━━━━━┓
┃ YES ┃
a[j-1]とa[j]の値を入れ替える ┃
┣━━━━━━━━━━━━━━━┛
ループ2
┃
ループ1
┃
終了
【解答】
実際にトレースしてみる。
回数┃入替回数┃配列の状態 ┃式
0 ┃0 ┃21,5,53,71,3,17┃
1 ┃0 ┃21,5,53,71,3,17┃a[5] > a[6]
2 ┃1 ┃21,5,53,3,71,17┃a[4] > a[5]
3 ┃2 ┃21,5,3,53,71,17┃a[3] > a[4]
4 ┃3 ┃21,3,5,53,71,17┃a[2] > a[3]
5 ┃4 ┃3,21,5,53,71,17┃a[1] > a[2]
6 ┃5 ┃3,21,5,53,17,71┃a[5] > a[6]
7 ┃6 ┃3,21,5,17,53,71┃a[4] > a[5]
8 ┃6 ┃3,21,5,17,53,71┃a[3] > a[4]
9 ┃7 ┃3,5,21,17,53,71┃a[2] > a[3]
10┃7 ┃3,5,21,17,53,71┃a[5] > a[6]
11┃7 ┃3,5,21,17,53,71┃a[4] > a[5]
12┃8 ┃3,5,17,21,53,71┃a[3] > a[4]
あとのfor文はソートが完了しており、入れ替え無しなので、全部で8回となる。