応用情報技術者試験 午前|アルゴリズムの要点と過去問
テクノロジ/アルゴリズムアルゴリズム分野は、探索・整列・ハッシュなどの代表的な手法と、データ構造(スタック・キュー・木など)の理解を問います。擬似的なプログラムを読み、実行結果や計算量を答えさせる問題が中心です。
出題傾向
応用情報技術者試験午前の過去33回分(平成21年度〜令和7年度)を集計した結果です。
97問33回の合計
2.9問1回あたりの平均
3.7%全2,640問に占める割合
4問最多の回(令和7年度 春期)
直近10回の平均は2.8問、それ以前の23回の平均は3.0問です。出題数はほぼ横ばいで、この分野は毎回安定して出題されています。
| 実施回 | この分野の出題数 |
|---|---|
| 令和7年度 秋期 | 1問 |
| 令和7年度 春期 | 4問 |
| 令和6年度 秋期 | 3問 |
| 令和6年度 春期 | 3問 |
| 令和5年度 秋期 | 2問 |
| 令和5年度 春期 | 3問 |
| 令和4年度 秋期 | 3問 |
| 令和4年度 春期 | 3問 |
| 令和3年度 秋期 | 3問 |
| 令和3年度 春期 | 3問 |
直近10回分を表示しています。
押さえておきたいテーマ
- 計算量とO記法
- データ量 n に対して処理時間がどう増えるかをO(n)、O(log n)、O(n log n)、O(n²) のように表します。同じ結果を出すアルゴリズムでも、n が大きくなると計算量の差が実行時間の大きな差になります。
- 探索アルゴリズム
- 線形探索は先頭から順に調べる方法で平均比較回数は n/2 程度です。二分探索は整列済みのデータを半分ずつに絞る方法で O(log n) ですが、前提としてデータが整列されている必要があります。
- 整列アルゴリズム
- バブルソート・選択ソート・挿入ソートは基本的な手法で計算量は O(n²) です。クイックソートは平均 O(n log n) ですが、基準値の選び方が悪いと最悪 O(n²) になります。ヒープソートとマージソートは最悪でも O(n log n) です。手法ごとの動作の違いを、途中経過で見分けられるようにします。
- ハッシュ法
- キーからハッシュ関数で格納位置を求める方法で、探索が平均的にほぼ一定時間でできます。異なるキーが同じ位置になる衝突(シノニム)の対処として、同じ位置に連結リストでつなぐチェイン法と、空いている別の位置を探すオープンアドレス法があります。
- スタック・キュー・リスト
- スタックは後から入れたものを先に取り出す(LIFO)構造、キューは先に入れたものを先に取り出す(FIFO)構造です。連結リストはポインタでつなぐため、要素の挿入・削除が容易です。配列との性能の違いも問われます。
- 木構造と探索
- 2分木の走査には、根→左→右の行きがけ順、左→根→右の通りがけ順、左→右→根の帰りがけ順があります。2分探索木では通りがけ順にたどると昇順に並びます。ヒープは親が子以下(または以上)になる木で、優先度付きキューに使います。
- 再帰
- 自分自身を呼び出して問題を小さくしていく手法で、階乗・フィボナッチ数列・ユークリッドの互除法が典型例です。終了条件と、呼び出しごとの値の変化をトレースする問題がよく出ます。
学習のコツ
- 擬似言語やフローチャートの問題は、変数の値を表に書き出して1ステップずつ追う(トレース)のが最も確実です。頭の中だけで追うとミスが出ます。
- 整列アルゴリズムは名前と動作、最悪計算量をセットで覚え、「途中経過の配列がこうなっているのはどの手法か」を見分ける練習をしておきます。
- 午後試験のプログラミング問題にもつながる分野なので、基本的な手法は自分で書けるところまで理解しておくと、午前の得点も安定します。
アルゴリズムの過去問一覧(全97問)
実施回ごとに、この分野の問題を新しい回から並べています。各問に解説と選択肢ごとの解説がついています。