最优解问题的求解

1. 一般来说题目中需要求解出最优解的问题,我们是可以使用普通递归,递推,深度优先搜索,记忆型的递归,贪心或者动态规划来进行求解的

其中使用普通的递归或者深搜,递推这些数据量较小的情况下求解速度还行,假如数据量相对大一点的情况下,而且节点的数量比较多,这个时候使用这些方法来解决往往会耗时比较大,有时候都需要求解半天了,原因是它需要搜索搜索的可能,把每一条路都尝试一遍,等到所有的路径走完才结束搜索,时间复杂度是指数级别的上升的,所以来说代码的性能会比较差一点

而使用我们的贪心或者动态规划来求解的话那么将会大大降低时间复杂度,因为它不会去搜索每一条路径,而是每一步都在当前所有可能的组合中找出一个最佳的方案,并且保存历史上的这些最佳方案,由子问题的局部最优解逐步逼近最终问题的最优解,那么最终就会求解出最终我们要求的最佳方案,在逼近的过程中往往运用到的是实际上多个子问题的最优解来进行当前子问题的最优解的推导,这也是动态规划的核心所在

所以来说动态规划是在当前子问题的组合中寻找组合中最优方案求解的过程,使用历史上的保存的最优解的结果进行逐步逼近最终答案的过程,其中使用到的是空间换时间的策略,所以来说相对于其他方法来解决这种问题是较优的

2. 所以对于这种最优解的问题我们最好使用动态规划来进行求解,因为这样可以提高我们代码的性能,使用动态规划来解决也可以培养我们思考问题的方式,提高我们解决问题的能力

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值