時間複雜度三部曲 Big O Trilogy
algorithm · complexity · gameplay

用三場戰役
把 Big O 刻進你的本能

不背公式,靠遊戲玩出對時間複雜度的直覺。 看情境、讀程式、算極限——三款挑戰,覆蓋 O(1)、O(log n)、O(n)、O(n²) 四大派系。

HP
SCORE 0
COMBO ×1
1 / 10
FINAL VERDICT
S
演算法之眼覺醒

你看穿了大部分的時間複雜度陷阱

10
Correct
0
Score
×0
Max Combo
3
HP Left
O(1)
CONSTANT TIME · 常數時間

不管 n 多大,操作次數固定。最理想的複雜度。

把資料量從 1 變成 100 萬,所需時間幾乎一樣。

Examples ・陣列用 index 取值 arr[5]
・Hash table 查詢 / 寫入
・Stack 的 push / pop
・口袋拿手機、看時鐘
O(log n)
LOGARITHMIC · 對數時間

每次把問題切一半。資料變 1024 倍,操作只多 10 次。

非常快。能從 O(n) 升級到 O(log n) 通常代表演算法很漂亮。

Examples ・二分搜尋 (Binary Search)
・平衡 BST 的查找
・每次 n /= 2 的 while 迴圈
・查紙本字典、猜數字遊戲
O(n)
LINEAR TIME · 線性時間

資料變兩倍,時間就變兩倍。一個迴圈跑完就是這個。

日常開發最常見。對大部分情境都還算可以接受。

Examples ・單層 for 迴圈跑過陣列
・找最大值、計算總和
・Linked List 走訪到第 k 個
・班級點名、把照片每張看一遍
O(n²)
QUADRATIC · 平方時間

資料變兩倍,時間變四倍。資料一大就災難。

看到巢狀迴圈就要警覺。1 萬筆資料就有 1 億次操作。

Examples ・Bubble / Selection / Insertion Sort
・雙層巢狀 for 處理所有 (i, j) 配對
・把每張照片跟其他每張比較
・班上同學互相握手

📝 iPAS 考點提醒

時間複雜度(Big O)描述演算法運算量隨資料量 n 的成長趨勢,是 AI 工程與資料結構基礎(iPAS 中級科目一相關)。重點:O(1) 常數、O(log n) 對數(每次砍半)、O(n) 線性、O(n²) 平方(巢狀迴圈、兩兩比對),越上面越快。易混點:兩個「接連」的單層迴圈是 O(n) 不是 O(n²)(常數倍去掉);自注意力是 O(n²) 隨序列長度平方成長,限制上下文長度。情境:選演算法、估算能處理多大資料、理解 Transformer 長序列成本。

想練情境題與詳解 → AI 學習與考證地圖

❓ 常見問題

Big O 是什麼?

描述演算法運算量(或記憶體)隨輸入規模 n 的成長趨勢,忽略常數與低階項,用來比較效率與可擴展性。

O(1)、O(log n)、O(n)、O(n²) 怎麼分?

O(1) 不隨 n 變(最快)、O(log n) 每次砍半(超快)、O(n) 線性、O(n²) 平方(巢狀迴圈或兩兩比對,資料一大就爆)。

看到兩個迴圈就是 O(n²) 嗎?

不一定。兩層「巢狀」都跑 n 才是 O(n²);兩個「接連」的單層迴圈是 O(n)(2n 去掉常數)。要看是巢狀還是接連。

Big O 和 AI 有什麼關係?

自注意力是 O(n²),限制上下文長度與長文成本;選對資料結構(如 hash 查詢 O(1))能把 O(n²) 降到 O(n),影響訓練與推論效率。

怎麼估演算法能處理多大 n?

用「硬體每秒運算數 × 時間預算 = 可負擔操作數」,再依複雜度反推 n(如 O(n²)、1 億次預算下 n 約 1 萬)。

🧭 相關主題

← 返回 AI 學習與考證地圖