什么是分而治之?

分而治之(D&C,Divide and Conquer),一种著名的递归式问题解决方法。
1.D&C的基本思想
将一个规模为N的问题分解为K个规模较小的子问题(K<=N),这些子问题相互独立且与原问题性质相同,求出子问题的解,就可以求出原问题的解。
2.使用D&C解决问题的过程包括三个步骤
(1)找出基线条件,这种条件必须尽可能简单。
(2)不断将问题分解(或者说缩小规模),直到符合基线条件。
(3)按原问题的要求,判断子问题的解是否就是原问题的解,或者需要将子问题的解逐层合并构成原问题的解。

举个例子
假设你是一个农场主,有一小块土地:
在这里插入图片描述

你要将土地均匀分成方块,且分出来的方块要尽可能大。
如何将一块地均匀的分成方块,并确保分出的方块是最大的呢?使用分而治之策略。
首先,找出基线条件,最容易处理的情况,就是一条边的长度是另一条边的整数倍
找出递归条件,每次递归调用都必须缩小问题的规模,如何缩小前述问题的规模?我们首先找出这块地可容纳的最大方块。

1.从这块地划出两个640m * 640m的方块,同时余下一小块640m*400m的地。
在这里插入图片描述

2.再次使用同样的划分方法,对于640m * 400m的土地,可从中划出的最大块地为400m * 400m。
在这里插入图片描述
最初要划分的土地尺寸为1680m * 640m,而现在要划分的土地更小,为640m * 400m,适用于这小块地的最大方块,也是适用于整块地的最大方块。
同理,对余下的土地使用相同的算法,直到土地分成两个方块后,将不会再余下任何土地。
在这里插入图片描述

因此,对于最初的那片土地,适用的最大方块是80m * 80m.

出自https://www.jianshu.com/p/038352946ba3
作此以供学习,若侵权,联系删之。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值