算法分析与设计复习__递归方程与分治

总结自:【算法设计与分析】期末考试突击课_哔哩哔哩_bilibili

1.递归,递归方程

1.1递归条件:

1.一个问题的解可以分解为几个子问题的解;

2.这个问题与分解之后的子问题,除了数据规模不同,求解思路完全一样;

3.存在递归终止条件。

1.2递归方程的建立,求解

1.2.1建立

当算法包含调用自身的过程时,其运行时间可用递归方程描述,

下面是递归方程建立的具体过程:假设问题规模为",T(m)为解决该问题的时间开销。

1.2.2求解

常用的求解递归方程的方法有两种:替换方法和主定理

1.2.2.1替换方法


用替换方法解某个递归方程时,分为两步。
首先是猜测问题解的某个界限,然后用数学归纳法证明所猜测解的正确性。猜测问题的界限可以根据经验猜,也可以把递归方程逐项展开,再对项进行合并根据合并结果猜测问题的界限。

1.2.2.2主定理(较简单,套公式即可)

1.2.2.3主定理不能解决的部分:

1.2.3例题

斐波那契序列,欧几里得算法,汉诺塔,阶乘;

1.2.3.1替换方法例题:
1.2.3.2主定理例题:

1.2.3.3 参考答案

T1:

T2:

T3:

T4:

T5:

T6:

T7:

1.3 分治法

分治法的思想:

    

相关推荐

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-05-16 14:42:11       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-05-16 14:42:11       100 阅读
  3. 在Django里面运行非项目文件

    2024-05-16 14:42:11       82 阅读
  4. Python语言-面向对象

    2024-05-16 14:42:11       91 阅读

热门阅读

  1. 【Flutter 面试题】 讲一下 Dart 中 ?? 与 ??= 的区别

    2024-05-16 14:42:11       35 阅读
  2. oracle 临时表

    2024-05-16 14:42:11       27 阅读
  3. Redis教程(七):Redis中Set类型的常用命令

    2024-05-16 14:42:11       30 阅读
  4. Linux中的nproc命令

    2024-05-16 14:42:11       30 阅读
  5. 分层解耦-三层架构

    2024-05-16 14:42:11       33 阅读
  6. 外挂知识库的论文总结(后续还会更新)

    2024-05-16 14:42:11       36 阅读
  7. Python代码实现求n以内最大的k个素数

    2024-05-16 14:42:11       38 阅读
  8. ControlNet 学习笔记

    2024-05-16 14:42:11       37 阅读
  9. AI工作原理及核心机制

    2024-05-16 14:42:11       25 阅读