合并排序使用了“分治法”的策略。
“将原问题划分成n个规模较小而结构与原问题相似的子问题;递归地解决这些子问题;然后合并其结果,就得到原问题的解。”这就是分治策略。
分治策略在每一层递归上有以下三个步骤:
1)分解:将原问题分解成一系列子问题;
2)解决:递归地解各子问题;
3)合并:将子问题的解合并成原问题的解。
合并排序依照上述策略:
1)分解:将n个元素分成两个含n/2个元素的子序列;
2)解决:用合并排序法对两个子序列递归地排序;
3)合并:合并两个已排序的子序列以得到排序结果。
以下代码演示了合并排序算法: