归并排序
递归求解问题
分治在每层递归的3个步骤:
step1 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题;
step2 解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题
step3 合并:将各个子问题的解合并为原问题的解。
归并排序使用分治算法。
合并函数:merge(A,p,q,r) , 时间复杂度:O(n)
递归排序函数:
测试数据:
测试结果:
归并排序
递归求解问题
分治在每层递归的3个步骤:
step1 分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题;
step2 解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题
step3 合并:将各个子问题的解合并为原问题的解。
归并排序使用分治算法。
合并函数:merge(A,p,q,r) , 时间复杂度:O(n)
递归排序函数:
测试数据:
测试结果: