🎯 什麼情境該想到我

當一個操作「偶爾很貴、多數很便宜」(如動態陣列滿了才擴容),你想算「一連串操作」的整體平均成本時。

⚙️ 怎麼用(三種方法擇一)

攤還分析算的是「一序列操作的總成本 ÷ 操作數」,而非單次最壞。

  1. 聚合法(Aggregate):直接算 n 個操作的總成本,再除以 n。
  2. 記帳法(Accounting):對便宜操作「多收費」存起來,用來支付未來昂貴操作。
  3. 位能法(Potential):定義一個位能函數,把成本變化攤到整個序列。

經典例:動態陣列 push——雖然擴容那次是 O(n),但攤還到每次 push 是 O(1)

🧪 我實際套用的紀錄

  • 2026-07-15:(待填)

⚠️ 注意

  • 攤還是「序列平均」不是「機率平均」——它保證的是總量上限,不靠輸入分布假設。

🔗 相關工具