アルゴリズム(全101問中37問目)

未整列の配列a[i](i=1,2,…,n)を,流れ図で示すアルゴリズムによって昇順に整列する。n=6でa[1]~a[6]の値がそれぞれ,21,5,53,71,3,17の場合,流れ図において,a[j-1]とa[j]の値の入替えは何回行われるか。
09.png

出典:平成25年秋期 問 9

  • 3
  • 6
  • 8
  • 15
正解 問題へ
分野:テクノロジ系
中分類:アルゴリズムとプログラミング
小分類:アルゴリズム
解説
//初期の並び21,5,53,71,3,17
===ループ1:i=1===
 ===ループ2:j=6===
 3>17=No
 ===ループ2:j=5===
 71>3=Yes
 71と3を入れ替える…1
 ===ループ2:j=4===
 53>3=Yes
 53と3を入れ替える…2
 ===ループ2:j=3===
 5>3=Yes
 5と3を入れ替える…3
 ===ループ2:j=2===
 21>3=Yes
 21と3を入れ替える…4
//j=1となりループ2の繰り返しが終了
//ここまでの並び3,21,5,53,71,17

===ループ1:i=2===
 ===ループ2:j=6===
 71>17=Yes
 71と17を入れ替える…5
 ===ループ2:j=5===
 53>17=Yes
 53と17を入れ替える…6
 ===ループ2:j=4===
 5>17=No
 ===ループ2:j=3===
 21>5=Yes
 21と5を入れ替える…7
//j=2となりループ2の繰り返しが終了
//ここまでの並び3,5,21,17,53,71

===ループ1:i=3===
 ===ループ2:j=6===
 53>71=No
 ===ループ2:j=5===
 17>53=No
 ===ループ2:j=4===
 21>17=Yes
 21と17を入れ替える…8
//j=3となりループ2の繰り返しが終了
//ここまでの並び3,5,17,21,53,71

(以下省略)
ここまでの処理で値が昇順に整列されたので入替え回数は8回が適切です。

以下は整列される様子をアニメーションにしたものです。
09a.gif
また次のプログラムは設問のアルゴリズムをJavaScriptで実装したものです。

Pagetop