位置: 编程技术 - 正文

JavaScript程序设计高级算法之动态规划实例分析(JavaScript程序设计形考答案)

编辑:rootadmin

推荐整理分享JavaScript程序设计高级算法之动态规划实例分析(JavaScript程序设计形考答案),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:JavaScript程序设计基础教程,JavaScript程序设计答案,JavaScript程序设计答案,javascript程序设计基础教程答案,JavaScript程序设计基础教程,JavaScript程序设计基础教程,JavaScript程序设计基础教程,javascript程序设计心得体会,内容如对您有帮助,希望把文章链接给更多的朋友!

本文实例讲述了JavaScript程序设计高级算法之动态规划。分享给大家供大家参考,具体如下:

主要是看了《数据结构与算法》有所感悟,虽然这本书被挺多人诟病的,说这有漏洞那有漏洞,但并不妨碍我们从中学习知识。

其实像在我们前端的开发中,用到的高级算法并不多,大部分情况if语句,for语句,swith语句等等,就可以解决了。稍微复杂的,可能会想到用递归去的解决。

但要注意的是递归写起来简洁,但实际上执行的效率并不高。

我们再看看动态规划的算法:

动态规划解决方案从底部开始解决问题, 将所有小问题解决掉, 然后合并成一个整体解决方案, 从而解决掉整个大问题 。

实例举例 (计算斐波那契数列)

斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, , , , , , , ,,,,,,,,,,,........

这个数列从第3项开始,每一项都等于前两项之和。

针对这个数列,可以用一个递归的函数去计算第n项 数值

确实是个非常简洁的代码,上面有被注释的代码 ,是用来打印出当n=多少,要执行多少次函数,不过明眼人一眼就能看出来执行的次数随着n的变大,次数也会非常恐怖增长。

当n=5的时候,递归树已经长的很大了……可以预见当n=,甚至n=的时候……

JavaScript程序设计高级算法之动态规划实例分析(JavaScript程序设计形考答案)

明白了递归函数执行效率之差,我们再来看的动态规划是如何做的

通过数组 val 中保存了中间结果, 如果要计算的斐波那契数是 1 或者 2, 那么 if 语句会返回 1。 否则,数值 1 和 2 将被保存在 val 数组中 1 和 2 的位置。

循环将会从 3 到输入的参数之间进行遍历, 将数组的每个元素赋值为前两个元素之和, 循环结束, 数组的最后一个元素值即为最终计算得到的斐波那契数值, 这个数值也将作为函数的返回值。

接下来可以写个简单的测试函数,来对比两者的运行时间。

打印函数执行

结果如下:

最后, 你或许已经意识到在使用迭代的方案计算斐波那契数列时, 是可以不使用数组的。

需要用到数组的原因是因为动态规划算法通常需要将中间结果保存起来。

以下是迭代版本的斐波那契函数义

当然这个迭代版本的与数组的版本的效率也是相同的。

更多关于JavaScript相关内容感兴趣的读者可查看本站专题:《JavaScript数据结构与算法技巧总结》、《JavaScript数学运算用法总结》、《JavaScript排序算法总结》、《JavaScript遍历算法与技巧总结》、《JavaScript查找算法技巧总结》及《JavaScript错误与调试技巧总结》

希望本文所述对大家JavaScript程序设计有所帮助。

利用JavaScript的%做隔行换色的实例 如下所示:htmlheadmetacharset="utf-8"title无标题文档/titlestyletype="text/css"li{list-style-type:none;width:px;height:px;}/style/headbodyulli/lili/lili/lili/lili/lili/lili/lili/li/ulscr

微信小程序wx.request实现后台数据交互功能分析 本文实例讲述了微信小程序wx.request实现后台数据交互功能。分享给大家供大家参考,具体如下:记录微信小程序wx.request这个api在跟后台交互时遇上的问

js 判断一个数字是不是2的n次方幂的实例 昨天去面试时,面试官问了一道面试题,说如何判断一个数是不是2的n次方幂,我当时不知道2的n次方幂是什么(糗大发了),还好给我解释了一下。最

标签: JavaScript程序设计形考答案

本文链接地址:https://www.jiuchutong.com/biancheng/369871.html 转载请保留说明!

上一篇:Bootstrap modal只加载一次数据的解决办法(推荐)(bootstrap modal 位置)

下一篇:利用JavaScript的%做隔行换色的实例(js如何使用)

  • 借递延所得税资产贷其他综合收益
  • 培训学校可以不可以用燃气取暖炉
  • 外出经营涉税事项报告
  • 为什么社保明细少一个月
  • 海关进口发票可以退税吗
  • 建筑企业小规模纳税人升为一般纳税人条件
  • 2019年工会经费新规定
  • 税控盘怎么注销需要带什么东西
  • 企业与政府土地合作开发模式
  • 其他应收款用什么表示
  • 小规模企业应交增值税的二级科目
  • 工人受伤医药费计入什么科目
  • 月初发票认证能抵扣吗
  • 如何确认增值税纳税义务发生时间
  • 对外来发票金额怎么算
  • 发票跨月还能重开吗
  • 购进租赁设备分录
  • 收入与应收款
  • 营业成本过低的原因
  • 企业出售二手车增值税如何缴纳
  • 原材料的借方发生额怎么算
  • 上月留底的进项税额本月转出做什么分录
  • 建筑安装服务费可以抵扣进项税吗
  • 停薪留职标准
  • 怎样让鼠标变得好看些
  • php substring
  • 个体户工商年报异常怎么解除
  • 冲减预付款
  • linux如何在终端运行程序
  • laravel debug rce
  • 在收付实现制下,预付的下季度报刊杂志订阅费
  • vue-router.esm.js?a12b:2046 Uncaught (in promise) NavigationDuplicated: Avoided redundant navigation
  • 不动产和无形资产的区别
  • 特定业务预缴
  • 金税盘锁死能正常报税吗
  • 原生js实现promise
  • 新所得税会计准则
  • 借管理费用贷应交税费个人所得税
  • javascript入门基础
  • 工业企业采购商品过程中发生的进货费用
  • 无盘领发票要怎么办
  • 应收账款出售给银行账务处理
  • 如何根据营业执照核定税种
  • 主营业务成本应交税费
  • 银行日记账跨月登记方法
  • 应交税金相关内容包括
  • 综合所得申报是个人所得税申报吗
  • 事业单位会计制度
  • 个体工商户增值税申报操作流程
  • 其他综合收益影响留存收益吗
  • 政府收购企业的流程
  • 烈士祭扫仪式
  • 车辆处置缴纳增值税税率
  • 主营业务收入计入借方还是贷方
  • 公司客户招待费用标准
  • 对公账户分为几类
  • 票据利率定价调整方案
  • 企业购买的土地计入什么科目
  • 什么情况下要暂扣驾驶证
  • 定额的餐饮发票
  • sql2005定时备份数据库
  • 微软桌面 ios
  • 直通车和百度竞价的区别
  • windows 查看补丁
  • Win10 Mobile 10586.11已经在慢速通道推送 着离正式版更近了
  • linux系统基本操作命令
  • cocos2d-x 3.2 在window平台vs2012下解决中文乱码问题
  • perl read
  • linux搭载服务器
  • 批处理查找字符中含有等号的子串
  • unity人物换肤用什么方法
  • javascript截图找图
  • android ListView之——ArrayAdapter使用
  • python 观察者
  • 美国买东西邮寄怎么寄
  • 中山市地方税务局官网
  • 车辆购置税属于税金及附加吗
  • 一般纳税人企业所得税5%还是25%
  • 水利工程税金的计算公式
  • 电子税务局怎么找回用户名
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设