電験三種 令和2年度(2020) 機械 問18(b) 過去問解説

問18(b) 《情報(フローチャートの処理回数)》
【選択問題:問17と問18のどちらか一方を選んで解答する】 図は,$n$ 個の配列の数値を大きい順(降順)に並べ替えるプログラムのフローチャートである。次の(a)及び(b)の問に答えよ。 (b) このプログラム実行時の読込み処理において,$n=5$ とし,$\mathrm{a[1]}=3$,$\mathrm{a[2]}=1$,$\mathrm{a[3]}=2$,$\mathrm{a[4]}=5$,$\mathrm{a[5]}=4$ とする。フローチャート中の X で示される部分の処理は何回行われるか,正しいものを次の(1)〜(5)のうちから一つ選べ。
問18(b)の図
  1. (1) 3
  2. (2) 5
  3. (3) 7
  4. (4) 8
  5. (5) 10
答えと解説を見る
正解は(3)
解説
【考え方】i を1つずつ進め、そのたびに j を i+1 から n まで動かします。$\mathrm{a[i]} \lt \mathrm{a[j]}$ のとき(後ろの方が大きいとき)だけ、入れかえ(X)をします。 ■1 i=1 のとき はじめの並びは 3, 1, 2, 5, 4 です。 a[1]=3 を、1・2・5・4 と比べます。5 のとき(j=4)だけ大きいので、1回入れかえます。 並びは 5, 1, 2, 3, 4 になります。 ■2 最後まで追う 解説の図 i=2:a[2]=1 は、2・3・4 が来るたびに入れかわるので、3回です。並びは 5, 4, 1, 2, 3 です。 i=3:a[3]=1 は、2・3 と入れかわるので、2回です。並びは 5, 4, 3, 1, 2 です。 i=4:a[4]=1 は、2 と入れかわるので、1回です。並びは 5, 4, 3, 2, 1 です。 ■3 回数を数える $1 + 3 + 2 + 1 = 7$ 回 答えは(3)ピヨ。
出典:令和2年度(2020) 第三種電気主任技術者試験(電気技術者試験センター)機械 問18(b)