資格部

資格・検定の試験情報、対策方法、問題解説などをご紹介

FE 科目B 令和5年度 問3

 

 次の記述中の   に入れる正しい答えを,解答群の中から選べ。ここで,配列の要素番号は 1 から始まる。

 次の手続 sort は,大域の整数型の配列 data の,引数 first で与えられた要素番号から引数 last で与えられた要素番号までの要素を昇順に整列する。ここで,first < last とする。手続 sort を sort(1, 5) として呼び出すと,/*** α ***/ の行を最初に実行したときの出力は“   ”となる。

〔プログラム〕
大域: 整数型の配列: data ← {2, 1, 3, 5, 4}
◯sort(整数型: first, 整数型: last)
 整数型: pivot, i, j
 pivot ← data[(first + last) ÷ 2 の商]
 i ← first
 j ← last

 while (true)
  while (data[i] < pivot)
   i ← i + 1
  endwhile
  while (pivot < data[j])
   j ← j - 1
  endwhile
  if (i ≧ j)
   繰返し処理を終了する
  endif
  data[i]とdata[j]の値を入れ替える
  i ← i + 1
  j ← j - 1
 endwhile
 dataの全要素の値を要素番号の順に空白区切りで出力する /*** α ***/
 if (first < i - 1)
  sort(first, i - 1)
 endif
 if (j + 1 < last)
  sort(j + 1, last)
 endif

解答群

  1. 1 2 3 4 5
  2. 1 2 3 5 4
  3. 2 1 3 4 5
  4. 2 1 3 5 4

解答・解説

解答

 エ

解説

 ー

前問 一覧 次問