【常见算法总结】

各种算法优点缺点

1、递归算法

解题思路:
1、明确递归函数的输入输出,先不管函数里边的具体代码实现。
2、寻找递归结束条件
3、确定递归关系式,怎么通过各种递归调用组合来解决问题。

2、分治算法

思想:
将一个复杂的大问题分成两个或多个相似的子问题,再逐步拆分,直到子问题可以简单求解。
解题思路:
1、分解,原问题分解为若干个规模较小,相互独立,和原问题形式相同的子问题。
2、解决,解决各个子问题
3、合并,将子问题的解合并为原问题的解

3、贪心算法

思想:
总是做出当前的最优选择,期望通过当前的最优解来获得整体的最优解。

4、回溯算法

思想:
回溯算法是一种试探法,它会在每一步做出选择,一旦发现这个选择无法得到预期结果,就回溯回去重新做出选择。深度优先搜索利用的就是回溯法的思想。

5、动态规划

思想:
分治算法要求各子问题是相互独立的,而动态规划的各个子问题是相互关联的。适用于子问题有重叠的情况,,即各个子问题有公共的子子问题。
解题思路:
1、定义子问题
2、实现需要反复执行解决的子子问题部分
3、识别并求解出边界条件

6、枚举算法

思想:
将问题的所有可能答案一一列举,然后根据条件判断此答案是否合适,保留合适的,丢弃不合适的
解题思路:
1、确定枚举对象、枚举范围、判定条件
2、逐一列举可能的解,判定每个解是否是问题的解

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值