電験三種 平成29年度(2017) 機械 問18(b) 過去問解説

問18(b) 《情報(入れかえ処理の回数)》
(選択問題:問17または問18のどちらか1問を解く) 図のフローチャートで表されるアルゴリズムについて,次の(a)及び(b)の問に答えよ。変数は全て整数型とする。 このアルゴリズム実行時の読込み処理において,n=5とし,a[1]=2,a[2]=3,a[3]=8,a[4]=6,a[5]=5とする。 (b) フローチャート中のXで示される部分の処理は何回行われるか,正しいものを次の(1)〜(5)のうちから一つ選べ。
問18(b)の図
  1. (1) 3
  2. (2) 4
  3. (3) 5
  4. (4) 8
  5. (5) 10
答えと解説を見る
正解は(1)
解説
【考え方】i を1から4まで動かし、そのたびに後ろの数とくらべて、入れかえた回数を数えます。 j は i+1 から 5 まで動き、a[i] とその後ろの数を1つずつくらべます。 X の処理:a[i] > a[j] のときだけ、a[i] と a[j] を入れかえる(m は入れかえのための一時置き場)。 ■1 順に数える 解説の図 はじめは 2, 3, 8, 6, 5 です。 i = 1 と 2 のときは、前の数のほうが小さいので入れかえません。 i = 3 では、8 と 6 を入れかえて 2, 3, 6, 8, 5 になります。(1回目) つぎに 6 と 5 を入れかえて 2, 3, 5, 8, 6 になります。(2回目) i = 4 では、8 と 6 を入れかえて 2, 3, 5, 6, 8 になります。(3回目) ■2 合計 X の処理は、全部で3回です。 答えは(1)ピヨ。
出典:平成29年度(2017) 第三種電気主任技術者試験(電気技術者試験センター)機械 問18(b)