算法思想系列--分治策略(Divide-Conquer-Combine)(待补充)

本文深入介绍了分治策略的三大步骤:分解、解决和合并,并探讨了递归在算法设计中的应用,包括尾递归实现及递归在不同场景中的优势。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

算法思想系列--分治策略(Divide-Conquer-Combine)
   分治策略(Divide-Conquer-Combine), 随机算法(Randomized Algorithms) 动态规划(Dynamic Programming), 贪心算法(Greedy Algorithms),摊还分析(Amortized Analysis),NP完全性(NP-Completeness),近似算法(Approximation Algorithms),  ,  回溯算法(back-track algorithm)

  分治策略递归地求解一个问题,在每层递归中应用如下三个步骤:
(1) 分解(Divide)步骤将问题划分为一些子问题,子问题的形式与原问题一样,只是规划更小
(2) 解决(Conquer)步骤递归地求解出子问题,如果子问题的规划足够小,则停止递归,直接求解
(3) 合并(Combine)步骤将子问题的解组合成原问题的解。

7.1 理解递归
    阶乘问题--> 尾递归(Tail Recursion)实现
    迭代解决方案通常比递归解决方案更有效率(性能开销方面)
    递归是程序设计中一个强有力的工具。
    其一,有很多数学函数是递归定义的,如阶乘, 2阶Fibonacci数列,Ackerman函数等
    其二,有很多数据结构本身固有的递归特性,他们的操作可递归地描述 如二叉树,广义表等

    第三,还有一类问题,虽然问题本身没有明显的递归结构,但用递归求解比迭代求解更简单,如:八皇后问题,Hanoi塔问题,字符串全排列,二分搜索



参考:

Recursion: https://en.wikipedia.org/wiki/Recursion
Recursion (computer science) https://en.wikipedia.org/wiki/Recursion_%28computer_science%29#Types_of_recursion
递归的种类: http://blog.chinaunix.net/uid-20341252-id-1702159.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值