アルゴリズムの「速さ」は計算量(O記法)で表します。
入力サイズがn個のとき、何回の処理が必要かを表す指標です。
📊 代表的な計算量
| 記法 | 名前 | 例 | n=1000のとき |
|---|---|---|---|
O(1) | 定数時間 | 配列の要素取得 | 1回 |
O(log n) | 対数時間 | 二分探索 | 約10回 |
O(n) | 線形時間 | リニアサーチ | 1000回 |
O(n log n) | 準線形 | クイックソート | 約10000回 |
O(n²) | 二乗時間 | バブルソート | 1,000,000回 |
💡 なぜ計算量が重要?
n=100万件のデータを処理するとき:
O(n²) → 1兆回の処理(数時間かかる)
O(n log n) → 2000万回(数秒)
アルゴリズムの選択ひとつで、処理速度が数万倍変わります!
📋 基本データ構造の特徴
| 構造 | 追加 | 削除 | 検索 | 用途 |
|---|---|---|---|---|
| 配列 | O(n) | O(n) | O(n) | インデックスアクセス |
| ハッシュマップ | O(1) | O(1) | O(1) | 辞書・キャッシュ |
| スタック | O(1) | O(1) | O(n) | 後入れ先出し(LIFO) |
| キュー | O(1) | O(1) | O(n) | 先入れ先出し(FIFO) |