算法设计与分析【2】分治算法

基本思想

分治法的基本思想是将一个规模为n的问题分解为k个规模较小的子问题,这些子问题互相独立与原问题相同,递归或迭代地解这些子问题,然后将各子问题的解综合得到原问题的解。

影响算法复杂度的因素

  • 子问题的个数
  • 子问题合并的工作量

改进分治算法有两个途径:

  • 减少子问题的个数
  • 增加预处理

经典案例

1 二分检索

设计思想

在这里插入图片描述

伪码

在这里插入图片描述

2 二分归并

设计思想

在这里插入图片描述

伪码

在这里插入图片描述

3 汉诺塔

设计思想

在这里插入图片描述

伪码

在这里插入图片描述

4 快速排序

设计思想

在这里插入图片描述

伪码

在这里插入图片描述
在这里插入图片描述

实例

在这里插入图片描述

5 快速傅里叶变换(信号平滑处理)

问题描述

在卷积计算中有多项式求值的问题,使用FFT(快速傅里叶算法,提高其效率)
在这里插入图片描述
关于卷积:
在这里插入图片描述
在这里插入图片描述

设计&分析

在这里插入图片描述
在这里插入图片描述

减少子问题个数案例:大数相乘

设计思想

在这里插入图片描述
在这里插入图片描述

参考材料

mooc算法分析与设计

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值