第三種電気主任技術者・2020年度・機械

2020年度 機械 問18(b)

図は、n個の配列の数値を大きい順(降順)に並べ替えるプログラムのフローチャートである。次の(a)及び(b)の問に答えよ。

このプログラム実行時の読込み処理において、n=5とし、a[1]=3, a[2]=1, a[3]=2, a[4]=5, a[5]=4とする。フローチャート中のXで示される部分の処理は何回行われるか、正しいものを次の(1)〜(5)のうちから一つ選べ。

2020年度 機械 問18(b)の問題図1

出典:第三種電気主任技術者 2020年度 機械 問18(b)

回答を選ぶ

選択すると結果を表示

見直しを保存するには、設定で端末内の記録をONにしてください。

次の問題へ →
正答・解説を確認する

正答:(3)

要点

正解は(3)。初期配列 [3,1,2,5,4] をアルゴリズム通りに追うと、5を先頭へ移す過程などで交換が発生します。各 i,j の比較ごとに交換回数を数えると答えに到達します。

詳細解説を読む

正解は(3)です。
交換回数のトレース
初期データ: [3, 1, 2, 5, 4]
目的: 降順 [5, 4, 3, 2, 1]
・i=1 (値3):
・j=2(1): 3<1 False
・j=3(2): 3<2 False
・j=4(5): 3<5 True → 交換 [5, 1, 2, 3, 4] (回数1)
・j=5(4): 5<4 False
・確定: 5
・i=2 (値1):
・j=3(2): 1<2 True → 交換 [5, 2, 1, 3, 4] (回数2)
・j=4(3): 2<3 True → 交換 [5, 3, 1, 2, 4] (回数3)
・j=5(4): 3<4 True → 交換 [5, 4, 1, 2, 3] (回数4)
・確定: 5, 4
・i=3 (値1):
・j=4(2): 1<2 True → 交換 [5, 4, 2, 1, 3] (回数5)
・j=5(3): 2<3 True → 交換 [5, 4, 3, 1, 2] (回数6)
・確定: 5, 4, 3
・i=4 (値1):
・j=5(2): 1<2 True → 交換 [5, 4, 3, 2, 1] (回数7)
・確定: 5, 4, 3, 2, 1

合計交換回数は 7回 です。
以上より、選択肢(3)が正解です。

関連問題