mirror of
https://github.com/krahets/hello-algo.git
synced 2026-11-01 18:55:23 +08:00
* Retranslate the complete Japanese online edition from Chinese * Fit Japanese homepage labels and localize heading permalinks * Point Japanese contribution instructions to the Japanese preview * Replace locale conditionals with multilingual UI tables
1.9 KiB
1.9 KiB
まとめ
要点の振り返り
- 分割統治は、分割と統合という二つの段階からなる、よく使われるアルゴリズムの設計戦略です。通常は再帰で実装します。
- 分割統治で解けるかどうかは、問題を分解できるか、部分問題が独立しているか、部分問題の解を統合できるか、という点から判断します。
- マージソートは分割統治の典型例です。配列を同じ長さの二つの部分配列へ再帰的に分割し、要素が一つになったら段階的に統合して、ソートを完了します。
- 分割統治戦略を取り入れると、アルゴリズムの効率が向上することがよくあります。操作回数を減らせるうえ、システムによる並列化にも適しているためです。
- 分割統治は多くのアルゴリズムの問題を解くだけでなく、データ構造やアルゴリズムの設計にも広く使われており、いたるところにその考え方が見られます。
- 適応的探索は全探索より効率的です。時間計算量が
O(\log n)の探索アルゴリズムは、通常、分割統治戦略に基づいています。 - 二分探索も分割統治の典型例ですが、部分問題の解を統合する段階はありません。再帰による分割統治で二分探索を実装できます。
- 二分木の構築問題では、木の構築(元の問題)を、左部分木と右部分木の構築(部分問題)に分割できます。これは、行きがけ順走査と通りがけ順走査のインデックス区間を分割することで実現できます。
- ハノイの塔の問題では、大きさ
nの問題を、大きさn-1の二つの部分問題と、大きさ1の一つの部分問題に分割できます。この三つを順に解けば、元の問題も解けます。