「アルゴリズム」の過去問(テクノロジ・37問+午後7大問)

1. この分野は何か

アルゴリズム分野は、特定の問題を解決するための計算手順(アルゴリズム)と、データを効率よく管理・格納するためのデータ構造を扱う領域です。
配列やリスト、木構造(2分探索木など)、ハッシュ表といったデータ構造の特性を理解した上で、ソート(整列)や探索のアルゴリズムがどのように動作するのか、またその処理効率(計算量:オーダー)がどのように評価されるのかを学びます。

2. 実際の出題のされ方

午前問題では、データ構造の動作過程やアルゴリズムの定義を問う問題が幅広く出題されます。

  • データ構造: 「2分探索木」の図が示され、特定のノードを追加・削除した際の変化や、データの巡回結果(行きがけ順、帰りがけ順など)を問う問題が出題されます。
  • ハッシュ表: ハッシュ関数 h(x)=xmodnh(x) = x \bmod n を用いてデータを格納する際、シノニム(衝突)が発生する条件や、その解決手法(オープンアドレス法やチェイン法)についての知識が問われます。
  • ソート・探索: バブルソートやクイックソートなどの整列アルゴリズムの手順を説明した文から、該当するアルゴリズム名を選択させる問題や、フローチャートの空欄穴埋めなどが定番です。逆ポーランド表記法のスタック操作に関してもここで出題されることがあります。

3. 学習のポイント

アルゴリズムは暗記ではなく「処理のトレース(追跡)」ができるかどうかが鍵になります。

  • 図を描いて動かす: 2分木やリストのポインタ操作、ハッシュ表へのデータ追加などは、頭の中だけで考えず、実際に紙に図を描いてデータがどう遷移するかを確認しましょう。
  • 代表的なアルゴリズムの比較: クイックソート、マージソート、ヒープソートなどの各種整列アルゴリズムについて、最良・最悪時の計算量(O(nlogn)O(n \log n)O(n2)O(n^2))と、安定なソートかどうかの違いを比較表で整理しておくことが得点に直結します。
  • フローチャートの読み解き: ループの終了条件や変数の初期値に注目し、極端な値(最小値や最大値)を入力した場合に意図通りに動作するか検証する癖をつけましょう。

4. 間違えやすいところ

ハッシュ表に関する問題で、衝突(シノニム)が発生した際の処理フローを読み違えるミスが多く見られます。関数が返す値が単純なインデックスなのか、それともポインタなのかを正確に区別する必要があります。
また、2分木の探索順序(深さ優先探索の「先行順」「中間順」「後行順」)の名前と走査ルールを混同しやすいため、「どのタイミングで自身のノードを訪問(出力)するか」というルールを明確に区別して覚えておきましょう。

  1. 2025(R7)秋 応用情報技術者 午前 問6 異なるn個のデータが昇順に整列された表がある。この表をm個のデータごとのブロックに分割し,各ブロックの最後尾のデータだけ…
  2. 2025(R7)秋 高度試験共通 午前I 問3 異なるn個のデータが昇順に整列された表がある。この表をm個のデータごとのブロックに分割し,各ブロックの最後尾のデータだけ…
  3. 2025(R7)春 応用情報技術者 午前 問2 0 \leqq x \leqq 1 の範囲で単調に増加する連続関数 f(x) が f(0) < 0 \leqq f(1)…
  4. 2025(R7)春 応用情報技術者 午前 問5 A, B, C の順序で入力されるデータがある。各データについてスタックへの挿入と取出しを1回ずつ行うことができる場合,…
  5. 2025(R7)春 応用情報技術者 午前 問6 図の2分探索木に1と0の二つの要素を順に追加したAVL木として、適切なものはどれか。…
  6. 2025(R7)春 応用情報技術者 午前 問7 fact(n)は,非負の整数nに対してnの階乗を返す。fact(n)の再帰的な定義はどれか。…
  7. 2025(R7)春 高度試験共通 午前I 問1 0 \leqq x \leqq 1 の範囲で単調に増加する連続関数 f(x) が f(0) < 0 \leqq f(1)…
  8. 2025(R7)春 高度試験共通 午前I 問3 A, B, Cの順序で入力されるデータがある。各データについてスタックへの挿入と取出しを1回ずつ行うことができる場合,デ…
  9. 2025(R7)春 システムアーキテクト 午前II 問9 サブルーチンとの引数の受渡し方のうち,引数として渡した変数の値が,サブルーチンの実行後に変更されないことが保証されている…
  10. 2024(R6)秋 応用情報技術者 午前 問3 式A+B×Cの逆ポーランド表記法による表現として,適切なものはどれか。…
  11. 2024(R6)秋 応用情報技術者 午前 問5 次の2分探索木から要素12を削除したとき,その位置に別の要素を移動するだけで2分探索木を再構成するには,削除された要素の…
  12. 2024(R6)秋 応用情報技術者 午前 問6 自然数をキーとするデータを,ハッシュ表を用いて管理する。キー x のハッシュ関数 h(x) を h(x) = x mod…
  13. 2024(R6)秋 高度試験共通 午前I 問3 自然数をキーとするデータを,ハッシュ表を用いて管理する。キー x のハッシュ関数 h(x) を h(x) = x \bm…
  14. 2024(R6)秋 データベーススペシャリスト 午前II 問3 関係データベースのテーブルにレコードを1件追加したところ,インデックスとして使う,B⁺木のリーフノードCがノードC1とC…
  15. 2024(R6)春 応用情報技術者 午前 問5 正の整数 M に対して,次の二つの流れ図に示すアルゴリズムを実行したとき,結果 x の値が等しくなるようにしたい。空欄a…
  16. 2024(R6)春 応用情報技術者 午前 問6 各ノードがもつデータを出力する再帰処理 f(ノード n)を定義した。この処理を,図の2分木の根(最上位のノード)から始め…
  17. 2024(R6)春 応用情報技術者 午前 問7 整列方法に関するアルゴリズムの記述のうち,バブルソートの記述はどれか。ここで,整列対象は重複のない1から9の数字がランダ…
  18. 2024(R6)春 高度試験共通 午前I 問3 各ノードがもつデータを出力する再帰処理 f(ノード n)を定義した。この処理を,図の2分木の根(最上位のノード)から始め…
  19. 2024(R6)春 システムアーキテクト 午前II 問7 現在のプログラム A, B に, 在庫テーブルを更新した後に更新ログを出力する機能を追加する。この機能は共通モジュールで…
  20. 2024(R6)春 システムアーキテクト 午前II 問8 純粋関数型言語が持つ特性の一つである参照透過性の説明はどれか。…
  21. 2024(R6)春 システムアーキテクト 午前II 問9 論理型プログラミングにおいて,命題の証明を行うための基本的な機能はどれか。…
  22. 2023(R5)秋 応用情報技術者 午前 問3 逆ポーランド表記法(後置記法)で表現されている式 \text{ABCD}-\times+ において, \text{A}=…
  23. 2023(R5)秋 応用情報技術者 午前 問5 双方向リストを三つの一次元配列 elem[i], next[i], prev[i] の組で実現する。双方向リストが図の状…
  24. 2023(R5)秋 応用情報技術者 午前 問6 あるデータ列を整列したら状態0から順に状態1, 2, ・・・, Nへと推移した。整列に使ったアルゴリズムはどれか。…
  25. 2023(R5)秋 応用情報技術者 午前 問7 JavaScriptのオブジェクトの表記法などを基にして規定したものであって,“名前と値との組みの集まり”と“値の順序付…
  26. 2023(R5)秋 高度試験共通 午前I 問1 逆ポーランド表記法(後置記法)で表現されている式 ABCD - \times + において、A=16、B=8、C=4、D…
  27. 2023(R5)秋 高度試験共通 午前I 問3 あるデータ列を整列したら状態0から順に状態1, 2, ・・・, Nへと推移した。整列に使ったアルゴリズムはどれか。…
  28. 2023(R5)秋 データベーススペシャリスト 午前II 問2 大文字のアルファベットで始まる膨大な数のデータを,規則に従って複数のノードに割り当てる。このようにあらかじめ定めた規則に…
  29. 2023(R5)秋 データベーススペシャリスト 午前II 問4 B+木インデックスが定義されている候補キーを利用して,1件のデータを検索するとき,データ総件数 X に対する B+木イン…
  30. 2023(R5)秋 データベーススペシャリスト 午前II 問18 ブロックチェーンのデータ構造の特徴として,適切なものはどれか。…
  31. 2023(R5)春 応用情報技術者 午前 問5 要求に応じて可変量のメモリを割り当てるメモリ管理方式がある。要求量以上の大きさをもつ空き領域のうちで最小のものを割り当て…
  32. 2023(R5)春 応用情報技術者 午前 問6 従業員番号と氏名の対が n件格納されている表に線形探索法を用いて, 与えられた従業員番号から氏名を検索する。この処理にお…
  33. 2023(R5)春 応用情報技術者 午前 問7 配列に格納されたデータ 2, 3, 5, 4, 1 に対して, クイックソートを用いて昇順に並べ替える。2回目の分割が終…
  34. 2023(R5)春 応用情報技術者 午前 問19 ハッシュ表の理論的な探索時間を示すグラフはどれか。ここで,複数のデータが同じハッシュ値になることはないものとする。…
  35. 2023(R5)春 高度試験共通 午前I 問3 配列に格納されたデータ 2, 3, 5, 4, 1 に対して,クイックソートを用いて昇順に並べ替える。2回目の分割が終わ…
  36. 2023(R5)春 高度試験共通 午前I 問6 ハッシュ表の理論的な探索時間を示すグラフはどれか。ここで,複数のデータが同じハッシュ値になることはないものとする。…
  37. 2023(R5)春 システムアーキテクト 午前II 問5 Java サーブレットを用いた Web アプリケーションソフトウェアの開発では,例えば,doGet や doPost な…

この分野の午後問題(記述式・読み物)

  1. 2025(R7)秋 応用情報技術者 午後 問3 二つの列の最長共通部分列 (Longest Common Subsequence) の長さを求めるアルゴリズムに関する次…
  2. 2025(R7)春 応用情報技術者 午後 問3 問3 スライドパズルを解くプログラムに関する次の記述を読んで,設問に答えよ。…
  3. 2024(R6)秋 応用情報技術者 午後 問3 問3 素数を列挙するアルゴリズムに関する次の記述を読んで,設問に答えよ。…
  4. 2024(R6)春 応用情報技術者 午後 問3 問3 グラフのノード間の最短経路を求めるアルゴリズムに関する次の記述を読んで,設問に答えよ。…
  5. 2023(R5)秋 応用情報技術者 午後 問3 問3 2分探索木に関する次の記述を読んで,設問に答えよ。…
  6. 2023(R5)春 応用情報技術者 午後 問3 多倍長整数の演算に関する次の記述を読んで,設問に答えよ。…
  7. 2023(R5)春 情報処理安全確保支援士 午後I 問1 問1 Webアプリケーションプログラム開発に関する次の記述を読んで,設問に答えよ。…