zoukankan      html  css  js  c++  java
  • 动态规划与递归的性能比较

      今天去招聘,问一个来面试的,问的是C#的问题,问到如何计算树的下级节点。其实我的本意是让他在设计树的结构的时候,增加一个FULL_CODE字段,通过SQL的左LIKE进行

    查询。不过小伙子很有意思,我已经提示他多次了,依然义无反顾的一头扎到算法中,非要用算法进行计算。于是引出了今天的随笔!

      小伙儿觉得应该用递归来计算树的下级节点,我说性能太差,当然,我的本意是让他用FULL_CODE来进行左LIKE,不过小伙子想了想,说:“那用动态规划吧。”

    虽然没有回答完全正确,但是也算不错。于是我问到,那么你首选哪个,小伙说是递归。于是我就郁闷了,我说前面已经说过了,递归性能性能太差。小伙的理由是

    虽然动态规划要快一点,但是算法不好写。综合考虑之后,还是觉得递归比较简单。我一看,得,人家就认准了递归了。于是今天就专门写了个动态规划和递归的算法的时间比较。

    递归就不在赘述了,说说动态规划吧,其实动态规划很简单,基本来讲就是将上一次的计算结果记下来,记作A,然后这个A参加下一次的计算,以此类推,直到计算结束。我用递归和

    动态规划实现了斐波纳契数列计算,递归如果超过40的时候就已经需要很长时间了(C#对于递归的开销比较大),40次大概需要1秒左右,但是用动态规划要一亿次,才需要4秒,这个相差

    的可不是几个数量级的问题。

      所以,在以后的开发中,尽量避免使用递归!

  • 相关阅读:
    vue 部署到服务器
    半小时学会 Vuex 数据共享
    Vue 第一次安装 经历 vue cli 3.0
    第一次使用视频截图 ant design
    Luckysheet
    关于导出--分页
    ADO.net很重要
    委托到底是什么? (转载)
    生成流水单号
    Ext.NET 基础学习笔记07 (GridPanel用法)
  • 原文地址:https://www.cnblogs.com/baod/p/2760654.html
Copyright © 2011-2022 走看看