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

2020年度 機械 問18(a)

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

図中の(ア)〜(ウ)に当てはまる処理の組合せとして、正しいものを次の(1)〜(5)のうちから一つ選べ。

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

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

回答を選ぶ

選択すると結果を表示

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

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

正答:(5)

要点

正解は(5)。降順に並べ替えるため、前の要素 a[i] が後ろの a[j] より小さいときに交換します。交換処理は一時変数 m に a[i] を退避し、a[i] に a[j]、a[j] に m を入れます。

詳細解説を読む

正解は(5)です。
フローチャートの穴埋め
このアルゴリズムは単純選択法(またはバブルソートの一種)による並べ替えです。
降順(大きい順)にしたいので、配列の前の方 a[i]a[i] が後ろの方 a[j]a[j] よりも小さければ (a[i]<a[j])(a[i] < a[j])、値を交換する必要があります。よって条件(ア)は a[i]<a[j]a[i] < a[j] です。
交換処理 X は、一時変数 mm を使ったスワップ処理です。
m←a[i]m \leftarrow a[i] (退避)
(イ) a[i]←a[j]a[i] \leftarrow a[j] (上書き)
(ウ) a[j]←ma[j] \leftarrow m (復帰)
これにより、(5)が正解となります。

関連問題