各类算法总结和比较

这篇博客详细总结了算法中的分治法、动态规划、贪心算法、回溯法、分支限界法以及随机化算法,探讨了它们之间的异同点和应用场景,有助于深入理解各种算法的本质和适用范围。
摘要由CSDN通过智能技术生成

各类算法总结和比较

1. 算法与程序

  • 算法是指解决问题的一种方法或一个过程。算法是有若干指令组成的又穷序列,满足下述4条性质:
    • 输入
    • 输出
    • 确定性
    • 有限性
  • 程序是算法用某种程序设计语言的具体实现。(程序可以是无限的,例如操作系统)

2. 分治法和递归的关系

分治法设计出的程序一般是递归算法,可以用递归方程分析计算效率。

3. 分治法和动态规划法

  • 相同点:都是将待求解问题分解为若干子问题(与原问题相同),先求解子问题,再结合这些子问题的解得到原问题的解。

  • 不同点:

    1. 动态规划法经分解得到的子问题往往不是相互独立的,而分治法的子问题是相互独立的。
    2. 动态规划保存已解决的子问题的答案,避免重复计算,提高了计算效率。

4. 动态规划法与贪心算法

  • 相同点:求解的问题都具有最优子结构性质。
  • 不同点:
    1. 贪心算法问题的最优解可以通过一系列局部最优的选择来达到,它仅在当前状态下做出最好选择,而动态规划的选择往往依赖相关子问题的解。
    2. 贪心算法不一定能得到整体最优解,动态规划法可以。
    3. 贪心算法一般是自顶向下的,而动态规划法是自下向上的。
    4. 贪心算法本质上仍是动态规划,但增加了约束条件&#
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值