算法分析与设计(第二章 分治法)

1、分治法:

将一个复杂的问题分解成若干个规模较小、相互独立,但类型相同的子问题求解;然后再将各子问题的解组合成原始问题的一个完整答案,这样的问题求解策略就叫分治法。

分治法框架:分解原问题,解决子问题,合并问题解。

2、一个问题能够用分治法求解的要素是

①问题能按某种方式分解成若干个规模较小、相互独立且与原问题类型相同的子问题;

②子问题足够小时可以直接求解;

③能够将子问题的解组合成原问题的解。

3、分治法与递归算法的关系

分治法要求分解成同类子问题,并允许不断分解,使逐渐减小;因而,分治法求解很自然的导致了一个递归算法。

4、归并排序:分解数组,递归求解,合并排序。

递归式分析方法:

  • 递归树法

  • 猜测法

  • 主定理法

三个方法比较:

5、解决最大子数组问题的三种不同算法时间复杂度如下:

6、采用分治法求解逆序对问题的时间复杂度为:

7、快速排序和次序选择的时间复杂度

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值