算法之分治法

程序=算法+数据结构

著名计算机科学家niklaus wirth提出了著名论断程序=数据结构+算法,这里我们就来谈谈分治法。

分治法与贪心法的区别

首先我们需要区分一下贪心法与分治法,贪心法是局部最优解,旨在用局部最优累加成一个最终结果;而分治法,则是将一个大问题分解成k个小问题,这每个小问题互相独立且与大问题相似,我们只需要递归的解决掉这小问题就可以实现解决大问题的目标。在这里插入图片描述
日常生活中,大部分人都会采用贪心法来处理日常事务,比如当你在找工作的时候,你可能大概率选择一个薪水比较高的工作,而不会去考虑一个长远的得失问题;面对同样一个找工作问题,如果我们采用分治法,又会是怎么样一个情景呢?
我们可以将找工作这个事看作一个大问题,我们首先要对它进行分解,分解的问题规模要足够小,以便可以直接得出答案。我们可以这样,首先将找工作分为薪水、强度、压力、是否可持续等几个维度,然后将我们可以匹配到的工作分别去对应这几个维度,最后就可以得出一个结果。这里我们就用到了分治法的思想。

分治法的特征与所能解决的问题

一般而言分治法所能解决的问题都包含如下几个特征:
1.问题具有足够的规模,即该问题不能直接给出解;
2.问题可以拆分成相互独立且与原问题相近似的小问题;
3.各个小问题的解集合起来,就可以得出原问题的解;
大多数情况下,我们是需要将很多个算法的思想结合起来做事,也有很多情况,我们需要灵活的运用算法。

分治法解决问题的数学模型

未完待续,博主持续更新中~

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值