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

基本思想

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

影响算法复杂度的因素

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

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

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

经典案例

1 二分检索

设计思想

在这里插入图片描述

伪码

在这里插入图片描述

2 二分归并

设计思想

在这里插入图片描述

伪码

在这里插入图片描述

3 汉诺塔

设计思想

在这里插入图片描述

伪码

在这里插入图片描述

4 快速排序

设计思想

在这里插入图片描述

伪码

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

实例

在这里插入图片描述

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

问题描述

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

设计&分析

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

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

设计思想

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

参考材料

mooc算法分析与设计

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章