配列A[i](i = 1, 2, …, n)を、次のアルゴリズムによって整列する。
行2〜3の処理が始めて終了したとき、必ず実現されている配列の状態はどれか。
[アルゴリズム]
行番号
- iを1からn - 1まで1ずつ増やしながら行2〜3を繰り返す。
- jをnからi + 1まで1ずつ減らしながら行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]が最小(ア)になっている。
【キーワード】
・整列
【キーワードの解説】
- 整列
整列とは、決まったアルゴリズム(決まり、手続き)で並び替えを行うことで、通常は“大きい順”か“小さい順”に並べ替えを行う。
もっと、「整列」について調べてみよう。
戻る
一覧へ
次へ
|