分割統治は、問題を(1)分割して小さなサブプロブレムにし、(2)各サブプロブレムを解決し、(3)結果を統合することで問題を解きます。多くの効率的なアルゴリズムはこのテンプレートに従っています。
考え方
サブプロブレムが独立していて、素早く縮小する場合、総処理量はマスター定理で分析できる漸化式に従います。
例: 分割統治による最大要素
python
():
lo == hi:
arr[lo]
mid = (lo + hi) //
left = max_dc(arr, lo, mid)
right = max_dc(arr, mid + , hi)
(left, right)
max_dc([, , , ], , )
