二叉树中的分治法与遍历法

本文对比了分治法与遍历法在处理问题上的差异,以人口普查为例进行说明。分治法通过分解任务并逐级汇总结果,而遍历法则通过游走整个结构来记录信息。文章还探讨了递归、回溯和搜索在算法中的角色,并指出分治法的递归函数通常有返回值,而遍历法通常没有。
摘要由CSDN通过智能技术生成

原文首发自 https://www.stdstring.com/2020/02/02/devide-binary-tree/

分治法 vs 遍历法

拿人口统计作为例子,遍历法与分治法的区别如下:

  • 如果使用遍历法,做法如下:

人口普查员自己一个人带着一个本子,跑遍全中国挨家挨户的敲门查户口

  • 而如果使用分治法,做法如下:

国家统计局的老板想要知道全国人口的总数,于是他找来全国各个省的统计局领导,下派人口普查任务给他们,让他们各自去统计自己省的人口总数。在老板
这儿,他只需要最后将各个省汇报的人口总数结果累加起来,就得到了全国人口的数目。

然后每个省的领导,又找来省里各个市的领导,让各个市去做人口统计。

市找县,县找镇,镇找乡。最后乡里的干部挨家挨户敲门去查户口。

在这里,把全国的任务拆分为省级的任务的过程,就是分治法中分的这个步骤。把各个小任务派发给别人去完成的过程,就是分治法中
治的这个步骤。但是事实上我们还有第三个步骤,就是将小任务的结果合并到一起的过程,合这个步骤。因此如果我来取名字的话,我会叫这个算法:分治合算法。

递归 vs 分治法 vs 遍历法

联系

分治法与遍历法是两种常见的递归方法。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值