30件分の使用電力量のデータ処理について、次の(a)及び(b)に答えよ。
図2は、30件の使用電力量を大きい順(降順)に並べ替える一つのプログラムの流れ図を示す。図2中の(オ)~(キ)に当てはまる処理として、正しいものを組み合わせたのは次のうちどれか。ただし、wは一時的な退避用の変数と考えよ。
図はタップで拡大できます。
回答を選ぶ
選択肢を押すと、すぐに結果が表示されます。
要点
正解は(2)。降順ソートでは、前の要素 \(d[i]\) が後ろの \(d[j]\) より小さいときに交換します。一時変数 \(w\) を使うスワップの順番を読む問題です。
詳細解説
降順(大きい順)に並べ替えるソート(選択ソート的な動き)です。
(オ):降順にするため、前の要素 \(d[i]\) が後ろの要素 \(d[j]\) より小さければ (\(d[i] < d[j]\)) 交換する必要があります。
交換処理(スワップ)は、一時変数 \(w\) を使って行います。
1. \(w \leftarrow d[i]\) (退避)
2. \(d[i] \leftarrow d[j]\) (上書き)
3. \(d[j] \leftarrow w\) (復元)
選択肢2がこの手順((カ)で \(d[i]\) に \(d[j]\) を代入、(キ)で \(d[j]\) に \(w\) を代入)と一致します。