時間・空間計算量とは?トレードオフと、3つのケース

公開: 更新: カテゴリ: テクノロジ系

30秒で結論

時間・空間計算量とは(全体像)

アルゴリズムの効率は、2つの面から見る。

ここで一番のポイント。時間と空間は、別の指標だ。「時間=空間」と思い込むと誤りになる。しかも、片方を良くすると、もう片方が悪くなる「トレードオフ」の関係になることがある。

たとえば、計算した答えをメモしておく(メモ化)と、メモリは多く使う(空間↑)が、次からは計算しなくてすむので速くなる(時間↓)。このように、時間とメモリは、交換になることがある。


詳しく:トレードオフと、3つのケース

ここが心臓部。ポイントを表で押さえよう。

時間・空間計算量のポイント

項目やさしい意味
時間計算量実行にかかる時間
空間計算量使うメモリの量
トレードオフ片方を良くすると、もう片方が悪くなることがある
3つのケース最悪・平均・最良の3つで分析する

まず、トレードオフ。たとえば、メモ化(答えを覚えておく)は、メモリを多く使うが、時間は速くなる。逆に、メモリを節約すると、時間が増えることもある。

そして、計算量を見るときは、1つの値だけでなく、3つのケースで考える。最悪のとき(Worst)・平均のとき(Average)・最良のとき(Best)だ。「いつも最悪ケースだけを見る」と思い込むと誤りで、平均や最良も分析の対象になる。

わかりやすく言い換えると

身近なたとえで整理しよう。

時間計算量と空間計算量は、「どれだけ速いか(時間)」と「どれだけメモリを使うか(空間)」の、2つのものさし。別ものだ。

トレードオフは、「答えをメモしておけば(メモリを使う)、次から計算せず速くなる」こと。要するに、時間とメモリは、交換になることがある。

3つのケースは、「いちばん悪いとき・ふつう・いちばん良いとき」で見ること。つまり、最悪だけでなく、平均や最良も考える。


試験のツボ

🔴 一番出る:時間と空間は別

①時間計算量=実行にかかる時間

②空間計算量=使うメモリの量(別の指標)

🔴 次に出る:トレードオフ

①片方を良くすると、もう片方が悪くなることがある

②例:メモ化(メモリ↑)で、時間↓になる

🟡 押さえると安定:3つのケース

①最悪・平均・最良の3つで分析する

②いつも最悪ケースだけを見るわけではない


よくある間違い

「時間計算量と空間計算量は、同じ指標だ」→ ✗  別の指標。しかも、片方を良くすると片方が悪くなるトレードオフになることもある。

「計算量は、いつも最悪ケースだけを見る」→ ✗  最悪・平均・最良の3つのケースで分析する。

「メモ化は、メモリも時間も、両方とも節約できる」→ ✗  メモ化は、メモリを多く使うが、時間は速くなる(トレードオフ)。


試験での出題パターン

実際の問題でたしかめてみよう。

オリジナル問題1(時間・空間計算量の正体)

📝 オリジナル問題 1 時間・空間計算量の正体

時間・空間計算量に関する次の記述のうち、最も適切なものはどれか。

  1. 社員の出退勤を記録して、毎月の給与を計算するためのしくみである
  2. 取引先へ毎月の請求書を郵送する、決まった事務作業のことを指す
  3. 完成したシステムを宣伝して、より多く売るための広告活動である
  4. 時間は実行時間、空間はメモリの量を表す、2つの指標なのである
データパン
データパン 解答・解説

解答は 4 だぱん。

時間・空間計算量は、時間は実行時間、空間はメモリの量を表す、2つの指標なんだぱん。別ものだから、まちがえないようにするといいぱん。

選択肢1は給与計算、選択肢2は請求書の事務、選択肢3は広告で、どれも違うぱん。

選択肢判定理由
1給与計算のしくみではない
2請求書の事務の話
3広告活動ではない
4時間は実行時間・空間はメモリで正しい

オリジナル問題2(トレードオフ)

📝 オリジナル問題 2 トレードオフ

時間と空間のトレードオフに関する次の記述のうち、最も適切なものはどれか。

  1. 社員の給与の計算しだいで、時間と空間が決まるとされているものだ
  2. 片方を良くすると、もう片方が悪くなることがある(メモ化など)
  3. 取引先への請求書の枚数しだいで、時間と空間が決まるとされている
  4. 時間と空間は、両方とも同時に節約できるものだとされている
データパン
データパン 解答・解説

解答は 2 だぱん。

時間と空間は、片方を良くすると、もう片方が悪くなることがある(メモ化など)んだぱん。メモ化はメモリを使うけど、時間は速くなるんだぱん。

選択肢1の給与、選択肢3の請求書、選択肢4の「両方同時に節約」は、いずれも違うぱん。

選択肢判定理由
1給与計算で決まるのではない
2片方を良くすると片方が悪くなるで正しい
3請求書の枚数で決まるのではない
4両方同時に節約とは限らない

オリジナル問題3(3つのケース)

📝 オリジナル問題 3 3つのケース分析

計算量のケース分析に関する次の記述のうち、最も適切なものはどれか。

  1. 最悪・平均・最良という3つのケースで分析するものである
  2. いつも最悪ケースだけを見るものだとされているものである
  3. 社員の給与を計算するケースだけを見るとされているものだ
  4. 取引先へ請求書を郵送するケースだけを見るとされている
データパン
データパン 解答・解説

解答は 1 だぱん。

計算量は、最悪・平均・最良の3つのケースで分析するんだぱん。いつも最悪だけ、ではないんだぱん。

選択肢2の「最悪だけ」、選択肢3の給与、選択肢4の請求書は、いずれも違うぱん。

選択肢判定理由
1最悪・平均・最良で分析で正しい
2最悪だけではない
3給与計算のケースではない
4請求書の事務のケースではない

まとめ

押さえどころ

次に学ぶ


執筆: SikakuQuest編集部

勉強は、クエストになった。

資格の勉強を、冒険に変えるRPG学習アプリ

App Storeで見る