什么是分而治之

        分而治之是设计中普遍采用的一种技术, 所谓“分而治之” 就是把一个复杂的算法问题按一定的“分解”方法分为等价的规模较小的若干部分,然后逐个解决,分别找出各部分的解,把各部分的解组成整个问题的解。

        整体思路就是可以用分而治之将一个大问题分解围若干小问题,分别解决,找出小问题的解就可以找出原问题的解。分治法的基本步骤:
           分解:将原问题分解为若干个规模较小,相互独立,与原问题形式相同的子问题
           解决:若子问题规模较小而容易被解决则直接解,否则递归地解各个子问题
           合并:将各个子问题的解合并为原问题的解

比如金块问题

分治步骤:
           1.我们设定最小不可分的大小为2。
           2.首先将8块分为两个4块,然后4个二块。
           3.然后对每个二块进行比较找出最大最小值,然后对找出的四个最大或者最小再次进行比较(是先比较12,和34然后胜者在进行比较)即可得到最大与最小值。划分了在依次比较,避免了多次比较地复杂,优化算法。  

可以使用分治法求解的一些经典问题
            二分搜索
            大整数乘法
            Strassen矩阵乘法
            棋盘覆盖
            合并排序
            快速排序
            线性时间选择
            最接近点对问题
            循环赛日程表
            汉诺塔
            二分搜索法

都避免了多次比较地复杂,优化算法。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值