ITパスポート 令和5年度 問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 の全ての要素を先頭から順にコンマ区切りで出力する
この設問が問うていること
疑似コードに記述されたバブルソートアルゴリズムを実行した結果を問う設問です。
総合解説
提示された疑似コードは、隣り合う要素の大小関係を比較し、順序が逆であれば入れ替えることを繰り返す「バブルソート(隣接交換法)」アルゴリズムです。 ・初期状態の配列は `{2, 4, 1, 3}` です。 ・アルゴリズムを適用すると、最終的に昇順(小さい順)に並べ替えられます。 ・昇順に並べ替えた結果は `{1, 2, 3, 4}` となり、出力はコンマ区切りで `1, 2, 3, 4` です。 したがって、正解はaです。
アルゴリズムとプログラミングをまとめて学ぶ
アルゴリズムとプログラミング 重点教科書 →
データ構造・擬似言語・探索と整列アルゴリズム・プログラム言語・HTML/XML/JSONまで、ITパスポートのアルゴリズム分野を体系的に解説します。