アルゴリズムとプログラミング
このノートの問いがそのまま復習カードになり、忘れかけたころに出題されます。
シラバス Ver.6.5 の小分類 37「アルゴリズムとプログラミング」(大分類 7:基礎理論/中分類 14:アルゴリズムとプログラミング)。
2026-08-05 にシラバス本文と突合済み。
0. 何を押さえるか
この試験で唯一、読解が要る論点です。擬似言語で書かれた短いプログラムを読み、
実行結果を答える問題が出ます。
出題の柱は 2 つです。
- プログラムの部品(変数・代入・条件式・手続・関数・引数・戻り値)
- 定番のアルゴリズム(探索 2 つ・整列 3 つ)
とくに2 分探索法は、あらかじめ整列されていなければ使えないという前提が問われます。
| アルゴリズム | 前提 | 速さ |
|---|---|---|
| 線形探索法 | なし | 遅い(先頭から順に見る) |
| 2分探索法 | 整列済みであること | 速い(毎回半分に絞る) |
1. プログラムの部品
根拠: シラバス 7-14-37
代入と条件式の違いは?
| 何をするか | |
|---|---|
| 代入 | 変数に値を入れる(x ← 5) |
| 条件式 | 真か偽かを判定する式(x > 5) |
代入は値を変える操作、条件式は判断のための式。
条件式は if や while の判断に使われる。
式・演算子・データ型とは?
| 何か | |
|---|---|
| 式 | 値を計算するための記述(a + b * 2) |
| 演算子 | 計算や比較の記号(+ - > =) |
| データ型 | 値の種類。扱える範囲と操作が決まる |
データ型の代表は、整数型・実数型・論理型・文字型。
型が違うと計算の結果も変わる(整数どうしの割り算など)。
手続と関数の違いは? 引数・戻り値とは?
| 何か | |
|---|---|
| 手続 | 処理をひとまとめにしたもの。戻り値を返さない |
| 関数 | 処理をひとまとめにし、結果(戻り値)を返す |
引数 … 呼び出すときに渡す値
戻り値 … 処理の結果として返す値
返すか返さないかが手続と関数の違い。
注釈(コメント)と入出力とは?
注釈 = プログラムの動作に影響しない説明書き
なぜその処理をしているかを残すためのもので、
何をしているかをなぞるだけの注釈は価値が低い。
入出力 … プログラムが外部から値を受け取り(入力)、
結果を外部に出す(出力)こと。
2. 探索のアルゴリズム
根拠: シラバス 7-14-37
線形探索法と 2 分探索法の違いは?
| やり方 | 前提 | |
|---|---|---|
| 線形探索法 | 先頭から順に 1 つずつ比べる | なし |
| 2分探索法 | 中央と比べ、範囲を半分に絞ることを繰り返す | 整列済みであること |
2 分探索法は整列されていないと使えない。 ここが最頻出。
整列にも手間がかかるので、1 回だけ探すなら線形探索のほうが速いこともある。
1000 件のデータを 2 分探索するとき、最大何回比較するか?
約 10 回
1 回ごとに範囲が半分になるので、
1000 → 500 → 250 → 125 → 63 → 32 → 16 → 8 → 4 → 2 → 1。
線形探索なら最大 1000 回。
データが増えるほど差が開くのが 2 分探索の価値。
3. 整列のアルゴリズム
根拠: シラバス 7-14-37
選択ソートとバブルソートの違いは?
| やり方 | |
|---|---|
| 選択ソート | 未整列部分から最小値を選んで先頭と交換する |
| バブルソート | 隣どうしを比べて順序が逆なら交換する。これを繰り返す |
選ぶか、隣と比べるか。
バブルソートは、軽いものが泡のように浮かび上がる様子から名付けられた。
クイックソートとは? 他の 2 つとの違いは?
基準値を 1 つ決め、それより小さい組と大きい組に分け、
それぞれをさらに同じやり方で並べ替える
分割を繰り返すことで、選択ソートやバブルソートより速い。
| 考え方 | |
|---|---|
| 選択・バブル | 1 つずつ位置を確定させる |
| クイックソート | 分けて、それぞれを片づける |
名前のとおり、一般に最も高速な整列法の 1 つ。