「再帰処理と反復処理ってどちらも同じ処理を繰り返す方法じゃないの?」
応用情報技術者試験でもアルゴリズム分野で頻出ですが、
- 何が違うの?
- どちらが速い?
- 再帰はなぜ自分自身を呼び出すの?
- どんな場面で使うの?
で混乱する人がかなり多いテーマです。
この記事では、
- 再帰処理とは?
- 反復処理とは?
- 違い
- 具体例
- 試験での頻出ポイント
を分かりやすく解説します!
まず結論
再帰処理
「自分自身を呼び出して繰り返す」
反復処理
「ループを使って繰り返す」
超簡単にいうと
| 手法 | 繰り返し方法 |
|---|---|
| 再帰処理 | 自分を呼ぶ |
| 反復処理 | ループする |
再帰処理とは?
超頻出!
特徴
関数が
自分自身を呼び出す
処理。
イメージ
関数A
↓
関数A
↓
関数A
例
階乗
5!
↓
5 × 4 × 3 × 2 × 1
再帰で表すと
5!
↓
5 × 4!
↓
5 × 4 × 3!
と自分を呼び出していく。
終了条件
超重要!
再帰には必ず
終了条件
が必要。
例
n = 1なら終了
終了条件がないと
無限再帰になる。
反復処理とは?
超頻出!
特徴
ループを利用して繰り返す。
イメージ
for文
while文
例
階乗
1
↓
2
↓
3
↓
4
↓
5
順番に計算していく。
メリット
重要!
メモリ消費が少ない
実行速度が速い
再帰処理と反復処理の違い
超頻出!
| 比較 | 再帰処理 | 反復処理 |
|---|---|---|
| 方法 | 自分を呼ぶ | ループ |
| 可読性 | 高い場合あり | 分かりやすい |
| メモリ使用量 | 多い | 少ない |
| 実行速度 | やや遅い | 速い |
| 利用場面 | 木構造探索 | 一般的な繰り返し |
イメージで理解
再帰処理
箱の中に
同じ箱がある
反復処理
階段を
1段ずつ登る
なぜ再帰が必要?
重要!
木構造の探索などでは
親
├子
│ ├孫
│ └孫
└子
のような構造になる。
こうした階層構造は
再帰の方が自然に書ける。
利用例
超頻出!
再帰処理
- 階乗計算
- 木構造探索
- 深さ優先探索(DFS)
- クイックソート
反復処理
- 合計計算
- 配列処理
- 線形探索
- 一般的なループ
スタックとの関係
応用情報で頻出!
再帰処理では
スタック領域
を利用する。
呼び出すたびに
処理情報
が積み重なる。
そのため深い再帰では
スタックオーバーフロー
が発生する場合がある。
試験での覚え方
超重要!
再帰
自分を呼ぶ
反復
ループする
よくあるひっかけ
「再帰は終了条件不要」
→ ❌違う!
終了条件がないと
無限再帰
になる。
応用情報で超頻出
かなり狙われる👇
- 再帰処理
- 反復処理
- スタック
- DFS
- クイックソート
- 終了条件
1分で復習!
再帰処理
自分自身を呼び出す
反復処理
ループで繰り返す
再帰
木構造に強い
反復
高速で省メモリ
超重要
再帰=自分を呼ぶ
反復=ループする
練習問題
問題
再帰処理の特徴として最も適切なものはどれか。
ア
必ずfor文で実装される
イ
自分自身を呼び出して処理を行う
ウ
メモリを使用しない
エ
終了条件は不要である
解答
正解:イ
解説
再帰処理は関数が自分自身を呼び出して問題を小さく分割しながら処理を進めます。また、必ず終了条件が必要です。
まとめ
再帰処理とは
「自分自身を呼び出す処理」
反復処理とは
「ループで繰り返す処理」
超重要
- 再帰=自己呼び出し
- 反復=for・while
- 再帰=スタック利用
- 再帰=終了条件必須
- 木構造探索で頻出
まずは、
「再帰=箱の中に同じ箱」
「反復=階段を1段ずつ登る」
このイメージを持つとかなり理解しやすくなります!
知識に自信ができた方は、今度は自身のキャリアアップに向けて準備してみませんか?

未経験から、ITエンジニアへ。
「IT業界に興味はあるけれど、自分にできるか不安」「何から始めればいいのか分からない」そんな方のために、Tech GO は未経験からのIT転職を専門的にサポートします。求人を紹介するだけではなく、あなたの強みを整理し、応募準備から入社後の成…
まずは無料でキャリア相談

コメント