常见算法思维

常见算法思维

  • 分治法
  • 迭代法
  • 枚举法
  • 回溯法
  • 贪心法
  • 动态规划

一、分治法

核心思想:将一个复杂的问题拆解成多个简单的子问题,递归的求解这些子问题,如果子问题还是比较复杂,则继续进行拆分,最后再将所有子问题的解合成最终结果

核心步骤

  1. 分解:将一个复杂的问题拆解成多个简单的子问题
  2. 求解:递归的求解这些子问题
  3. 合并:将所有子问题的解合成最终结果

举例:归并排序
优点:简化问题,通过分解大问题,转换为较为简单的子问题,易于求解
缺点:往往需要额外的空间,用来存储分解后的子问题,空间复杂度一般为O(n)

二、迭代法

核心思想:重复执行一系列步骤,直到满足某个条件或者达到预定的目标,每次迭代在一定程度上修改问题的状态,最终通过不断的更新和计算得到问题的解

核心步骤

  1. 初始化:确定初始值,准备进入迭代
  2. 条件判断:每次迭代开始之前,判断状态是否满足条件,如果满足,退出迭代
  3. 更新:更新状态,进入下一次迭代
  4. 重复:一直执行迭代

举例:计算递增排序的和(计算1+2+4+5+…+2)

三、枚举法

核心思想:列出所有可能的选项,并逐一检查某一个选项,判断是否符合问题的约束条件

核心步骤

  1. 穷举所有可能的解
  2. 检查每个解是否符合要求
  3. 选择合适的解
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值