B問題
下期
電験三種 機械 2022年度 下期 問18(b)
22 / 22
30件分の使用電力量のデータ処理について,次の(a)及び(b)に答えよ。 (b) 図2は,30件の使用電力量を大きい順(降順)に並べ替える一つのプログラムの流れ図を示す。図2中の(オ)~(キ)に当てはまる処理として,正しいものを組み合わせたのは次のうちどれか。ただし,wは一時的な退避用の変数と考えよ。(オ) (カ) (キ) 図1図2

正解と解説
表示する
正解 2
d[i]<d[j] d[i] d[j] d[j] w
図2は外側ループでi=1~k-1、内側ループでj=i+1~kを走査する選択(交換)ソートである。降順に並べ替えるには、後ろの要素d[j]のほうが大きい場合、すなわち(オ)の判定がd[i]<d[j]のときに2つを入れ替えればよい。入れ替えは退避用変数wを使い、w←d[i]の後に(カ)でd[i]←d[j]、(キ)でd[j]←wと3段階で行う。(カ)と(キ)の順序を逆にしたり、d[j]←d[i]から始めたりすると元の値が上書きされて正しく交換できない。