平成19年 春期 基本情報技術者 午前 問14

配列A[i](i = 1, 2, …, n)を、次のアルゴリズムによって整列する。
行2〜3の処理が始めて終了したとき、必ず実現されている配列の状態はどれか。

[アルゴリズム]
 行番号

  1. iを1からn - 1まで1ずつ増やしながら行2〜3を繰り返す。
  2.  jをnからi + 1まで1ずつ減らしながら行3を繰り返す。
  3.   もしA[j] < A[j - 1]ならば、A[j]とA[j - 1]を交換する。

 ア  A[1]が最小値になる。
 イ  A[1]が最大値になる。
 ウ  A[n]が最小値になる。
 エ  A[n]が最大値になる。


答え ア


解説
配列A[ ] = {3, 4, 1, 2}の場合について処理を行う。
行番号1で、i = 1のときに、行2〜3を行う。
行番号2で、j = 4のときに、行3を行う。
行番号3で、A[4] = 2、A[3] = 1なので、なにもしない。
次に、j = 3で行番号3を行い、A[3] = 1、A[2] = 4なので、A[3]とA[2]を入れ替える。
次に、j = 2で行番号3を行い、A[2] = 1、A[1] = 3なので、A[2]をA[1]を入れ替える。
この段階で行2〜3が終了して、このときの配列の状態はA[ ] = {1, 3, 4, 2}なので、A[1]が最小(ア)になっている。


キーワード
・整列

キーワードの解説

戻る 一覧へ 次へ