2023年 ITパスポート 午前 問60

手続きprintArrayは、配列integerArrayの要素を並べ替えて出力する。 手続きprintArrayを 呼び出したときの出力はどれか。 ここで、配列の要素番号は1から始まる。

[プログラム]
〇printArray()
 整数系: n, m
 整数系の配列: integerArray ← {2, 4, 1, 3}
 for (nを1から(integerArrayの要素数 - 1)まで1ずつ増やす)
  for (mを1から(integerArrayの要素数 - n)まで1ずつ増やす)
   if (integerArray[m] > integerArray[m + 1])
    integerArray[m] と integerArray[m + 1] の値を入れ替える
   endif
  endfor
 endfor
 integerArrayの全ての要素を先頭から順にコンマ区切りで出力する

 ア  1,2,3,4  イ  1,3,2,4  ウ  3,1,4,2  エ  4,3,2,1


答え ア


解説
プログラムを順を追って動作させてみる。 最初のfor文はnが1〜3まで動作し

  • nが1のとき、2番目のfor文はmが1から3まで動作し、配列の要素の前後を比較し前の方が大きかったら入れ替えるので配列{2, 4, 1, 3}は{2, 1, 3, 4}になる。
  • nが2のとき、2番目のfor文はmが1から2まで動作し、配列の要素の前後を比較し前の方が大きかったら入れ替えるので配列{2, 1, 3, 4}は{1, 2, 3, 4}になる。
  • nが3のとき、2番目のfor文はmが1から1まで動作し、配列の要素の前後を比較し前の方が大きい場合はないので配列は{1, 2, 3, 4}のままである。


キーワード
・整列

キーワードの解説
  • 整列(sort、ソート)
    データを大きい順(降順)や小さい順(昇順)に並べ替える処理です。
    整列にはさまざまな方法(アルゴリズム)があり、プログラミングのしやすさや、処理時間、使用メモリ量、データの構造や特長により使用するアルゴリズムが異なります。

もっと、「ソート」について調べてみよう。

戻る 一覧へ 次へ