科目B アルゴリズム

科目B:アルゴリズムとは

基本情報技術者試験の科目Bは、アルゴリズムと情報セキュリティの2分野から出題されます。アルゴリズム分野は、擬似言語によるプログラム読解が中心となります。

擬似言語(IPAが定める擬似言語)

IPAが定義する擬似言語は、特定のプログラミング言語に依存せず、アルゴリズムの読み解く能力を評価するための共通の記述形式です。

汎用命令意味
もしここに存在するならば条件分岐(if)もし x > 0 ならば
そうでなければ条件分岐(else)そうでなければ
を繰り返すループ(while/for)i が 1 から n まで 1 ずつ増やしながらを繰り返す
手続き関数呼び出しsum(配列, n)
戻り値return戻り値: result

擬似言語の基本構文

擬似言語では以下の構文を正確に読めることが重要です。

  • 変数宣言と代入: 型名: 変数名 ← 値
  • 配列: 型名: 配列名[1..n](インデックスは1始まり)
  • 条件分岐: もし (条件) ならば 〜 でなければ 〜 を終わる
  • 前判定ループ: を (条件) の間,繰り返す
  • 後判定ループ: を (条件) になるまで繰り返す
  • 手続き呼び出し: 戻り値 ← 手続き名(引数)

アルゴリズムの基礎

基本的なアルゴリズム

アルゴリズム概要計算量
線形探索先頭から順に比較するO(n)
二分探索ソート済み配列を半分ずつ絞り込むO(log n)
バブルソート隣接要素を比較して交換O(n²)
選択ソート最小値を選んで先頭と交換O(n²)
挿入ソート適切な位置に挿入していくO(n²)
クイックソート分割統治による高速ソートO(n log n)

データ構造

データ構造特徴試験での使われ方
配列同じ型のデータを連続的に格納最も頻繁に登場する
スタックLIFO(後入先出)構造push/pop操作
キューFIFO(先入先出)構造enqueue/dequeue操作
木(ツリー)階層的なデータ構造再帰的処理で表現

再帰アルゴリズム

再帰とは、手続きが自分自身を呼び出すアルゴリズムです。代表的な例にフィボナッチ数列や階乗計算があります。終了条件(基底ケース)の設定が不可欠です。

再帰の例:階乗計算

 手続き fact(整数型: n)
  もし n が 1 以下 ならば
   戻り値: 1
  そうでなければ
   戻り値: n × fact(n – 1)
  を終わる

出題傾向と対策

科目Bのアルゴリズム問題は、擬似言語で書かれたプログラムを読んで動作を追う問題が中心です。

  • トレース問題:プログラムを手動で実行して変数の値を追う
  • 穴埋め問題:コードの不足部分を補充する
  • 配列操作:アクセスパターンやインデックス計算
  • 再帰プログラム:呼び出しの流れと戻り値を追う

効果的な学習方法

  • 擬似言語仕様を熟読する:IPA公式サイトの擬似言語定義を確認
  • トレース練習を繰り返す:過去問題のトレースを毎日実践する
  • ソート・探索アルゴリズムを手で実行:小さな配列で実際に動かす
  • パターン認識:ソート・待ち行列・差分計算など典型パターンを覚える
タイトルとURLをコピーしました