算法设计与分析实验报告(二)

最优化-斐波那契数列(fibonacci)优化方法 算法原理及代码实现 本文介绍了Fibonacci数列优化的原理,并详细的用pytho实现其算法。 阅读详情

实验二:斐波那契数列递归和非递归算法时间效率的实验验证

1.实验目的

通过比较斐波那契数列递归和非递归算法运算的时间,从而对比得出递归和循环的效率高低。

2.实验内容

分别实现求斐波那契数列第N个数的递归和非递归算法,并记录下随着问题规模N从小到大变化过程中两个算法实现的运行时间,分析其中的规律,并得出分析结论。要求在实验报告中贴出测试实例的运行窗口,并制作一个表格呈现N变化时两个算法实现的运行时间,以文字形式进行分析并得出结论。

3.设计思路

使用递归方式计算斐波那契数时,第n项总是须要先计算出第n-1项和第n-2项,运行时间T(N)T(N-1)+T(N-2)。由于T(N)作为斐波那契数满足同样的递推关系并具有相同的初始条件,因此,T(N)事实上是以斐波那契数相同的速度增长而指数级增长。

循环求斐波那契只须要记录最近算出的两个斐波那契数即可,可以推到出O(N)算法。

4.关键代码

递归求斐波那契数列第N个数:

非递归求斐波那契数列第N个数:

5.运行结果

递归:

非递归:

方法    N

1

10

20

30

40

递归

1199ms

3744ms

4979ms

6330ms

8393ms

非递归

1121ms

2526ms

3836ms

4962ms

6233ms

                                                    

6.实验总结(含心得体会)

递归算法解决斐波那契数列问题要比非递归算法解决斐波那契数列问题花费更多的时间,当n值越大时越明显。可以通过优化递归算法减少重复计算的次数提高递归算法的效率。

算法设计与分析基础实验报告二 当数据量较小时,直接插入排序的效率较高;当数据量较大时,归并排序的效率较高。 阅读详情

相关推荐

西南交通大学SWJTU算法分析与设计实验报告精华版

算法是解决计算问题的一系列定义明确的指令或步骤。它们是计算机科学的核心,因为算法的效率和有效性直接关系到计算任务的完成速度和质量。一个优秀的算法能够在有限的时间和资源内,以尽可能高的效率解决问题。在算法设计中,不仅要考虑正确性,还要考虑到时间和空间的复杂度,即算法所需的时间和存储空间。随着数据量的增加,高效的算法对于避免性能瓶颈至关重要。实验结果是验证算法性能的直接依据。在报告中,应当详细记录实验的每一个结果,并进行深入分析。结果的记录可以是数字、图表或图片等多种形式。

weixin_42497762的博客 1091

MIPS课程实验报告(斐波拉契数列)

斐波拉契数列: 斐波拉契数列为1、1、2、3、5、8、13、21……此数列从第3项开始,每一项都等于前两项之和。 设计思想:该数列可通过迭代或者递归的方式完成,本人采用迭代,首先,输入一个整数num,代表一共需要打印的项数,当num1或num2时,直接打印结果,不需要通过计算;当num>2时,先打印前两项的结果,再计算后面第3、4、5……项的结果并打印,该过程则通过循环实现。 下面是C++、伪代码、对照表和MIPS汇编源代码: #include <iostream> using names

小王同学的博客 1468

算法设计实验报告之多种方法求解斐波那契数列

用递推算法 迭代算法 公式法计算求第N个Fibonacci数,计算机能算出最大Fibonacci时N的值,计算1分钟内能计算几个Fibonacci,用公式法计算Fibonacci,当出现错误时,N为多少。

(python)斐波拉契数列递归与非递归算法比较实验

斐波拉契数列递归与非递归算法比较实验 实验题目 斐波拉契数列递归与非递归算法比较实验 实验要求 画出运行时间与n变化曲线对比图,并分析原因 实验目的 1、实现递归与非递归算法解决斐波那契数列问题 2、比较递归算法和非递归算法解决斐波那契数列问题所耗费的时间 3、可视化显示不同n值递归与非递归算法运行的时间 实验步骤 1、递归实现斐波那契数列函数 #递归实现斐波那契数列算法 def rec_Fibonacci(n): if n<= 0: return 0 if n ==

weixin_44015117的博客 2256

Vertx之Grpc消息发送

介绍 Vert.x gRPC 模块,它将 Google gRPC 的编程风格与 Vert.x 风格保持一致. gRPC 是一个高性能、开源、通用的RPC框架,是一种进程间通讯技术,由Google推出,基于HTTP2协议标准设计开发,默认采用Protocol Buffers数据序列化协议,支持多种开发语言。gRPC提供了一种简单的方法来精确的定义服务,并且为客户端和服务端自动生成可靠的功能库。 在gRPC客户端可以直接调用不同服务器上的远程程序,使用姿势看起来就像调用本地程序一样,轻松的实现远端服务的连接、

Lance 1188

聚类分析之——Kmeans算法(一)

原创地址:http://www.toutiao.com/i6399454239554273794/ 聚类分析是一种静态数据分析方法,常被用于数据挖掘、机器学习、模式识别等领域,聚类是一种无监督式的学习方法。它是在未知样本类别的情况下,通过计算样本彼此间的距离(欧式距离,马式距离,汉明距离,余弦距离等)来估计样本所属类别。从结构性来划分,聚类方法分为自上而下和自下而上两种方法。聚类的算法有很多

june2017的博客 3533

MIPS汇编实验报告:斐波那契数列

MIPS汇编实验报告:斐波那契数列 设计思想: 首先先确定N的值,检查N是否异常。然后将所要求的16进制斐波那契数列分成高32位与低32位。分别对高低32位做运算(注意进位),若高32位溢出则报溢出错误,低32位溢出则进位。如果高32位的值为0,则用32位的方式输出16进制斐波那契数列,否则就用64位输出。 流程图: MIPS代码: .data tip1: .asciiz “Please input the number N:” tip3: .asciiz “Hexout:” err_tip1: .a

m0_46254069的博客 3251

AWD线下攻防赛总结

在本地组策略编辑器里面,依次展开计算机配置—>管理模板—>Windows组件—>远程桌面服务—>远程桌面会话主机—>连接—>限制连接的数量。8.Web目录环境查找相关可疑文件:jpg/png/rar,属性、解压。进程线程:netstat / ps -aux/netstat -apt。4.查看/etc/init.d/rc.local中启动服务有无异常。1.不使用默认口令,修改成复杂的,并确保和web环境连接。5.使用脚本开启进程监控、目录监控、流量监控。文件操作监控.exe/御剑文件监控.exe。

XuJL89的博客 630

算法设计与分析— 斐波那契数列

题目描述: ** 斐波那契数列** 示例 : 写一个函数,输入 n ,求斐波那契(Fibonacci)数列的第 n 项(即 F(N))。斐波那契数列的定义如下: F(0) = 0, F(1) = 1 F(N) = F(N - 1) + F(N - 2), 其中 N > 1. 斐波那契数列由 0 和 1 开始,之后的斐波那契数就是由之前的两数相加而得出。 答案需要取模 1e9+7(1000000007),如计算初始结果为:1000000008,请返回 1。 来源:力扣(LeetCode) 算法实现

南方硅人的博客 892

【专栏目录】

🌟 深度学习工程师的终极武器库!本专栏深度解析近3年CV领域最前沿的YoloV8改进方案,每一种方法都经过实战验证,性能显著提升!🌟。

m0_47867638的博客 1万+

Vue3 - 详细实现流程图编辑器可视化平台示例代码,打造前端web网页流程图在线编辑绘制操作展示,vue3自定义绘制流程图在页面上画流程图功能(提供各种操作按钮及节点控件,界面美观交互式流程图插件)

vue3,绘制流程图,在线流程图制作,在vue3中实现流程图,vue3做一个制作流程图的功能,vue3流程图组件,vue3流程图,流程图绘制展示,vue3流程图可视化在线编辑源码,基于VUE3的在线绘制流程图工具,vue3+logicflow流程图,绘制动态流程图并自定义节点和线,vue使用logicFlow绘制流程图,生成各种流程图图形可连接点移除,基于Vue的流程图组件,工作流程图,流程编辑器,vue3流程组件,vue-flow绘制流程图,绘制流程图示例demo,vue3 logicflow流程图使用教

🏆 前端领域优质创作者 9967

算法分析与设计实验报告二——贪心算法实验

一、实验目的 了解贪心算法思想 掌握贪心法典型问题,如背包问题、作业调度问题等。 二、实验内容 编写一个简单的程序,实现单源最短路径问题。 编写一段程序,实现找零。 【问题描述】当前有面值分别为2角5分,1角,5分,1分的硬币,请给出找n分钱的最佳方案(要求找出的硬币数目最少)。 编写程序实现多机调度问题 【问题描述】要求给出一种作业调度方案,使所给的n个作业在尽可能短的时间内由m台机器加工处理完成。约定,每个作业均可在任何一台机器上加工处理,但未完工前不允许中断处理。作业不能拆分成更小的子作业。

yeweij226的博客 1万+

【WRF-Urban】Registry.EM_COMMON文件概述及urban有关变量

Registry.EM_COMMON文件概述及urban有关变量

WW、forever的博客 1595

算法设计与分析实验报告:实验二 递归与分治策略

P39,算法实现题2-1.众数问题:给定含有n个元素的多重集合S,每个元素在S中出现的次数称为该元素的重数。例如,S={1,2,2,2,3,5}。多重集S的众数是2,其重数为3。通过递归分治算法能够将一个难以直接解决的大问题分割成一些规模比较小的相同问题,以便各个击破,能够使函数的定义和算法描述更加简捷且更加容易理解。else if (b[i] == max && a[i] <most)//次数相等且数字小。对于给定的由n个自然数组成的多重集S,计算S的众数及其重数。数据的逻辑结构:数组a[],b[]

小柴 1127

AI测试:手把手教你用AI生成测试用例并支持导出Excel「喂饭教程」

如果我告诉你,有一种方法,你只需要输入需求内容,AI就能自动帮你设计出结构清晰、覆盖全面的测试用例,并直接生成一份精美的Excel表格,你会不会心动?

blues_C的博客 3885

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

算法设计与分析实验报告——实验二 动态规划

W为背包的容量,w_i为第i个物品的重量,v_i为第i个物品的价值,i表示从第1个物品到第i个物品。若当前遍历到的物品重量w[i]大于当前剩余背包容量j,则不能将当前物品放入背包中,直接跳过当前物品,c[i][j]的值为上一行同列元素c[i-1][j]的值;若放入该物品能获得更大的总价值,则c[i][j]的值为当前物品价值v[i]加上上一行同列元素c[i-1][j-w[i]]的值;若放入该物品不能获得更大的总价值,则dp[i][j]的值为上一行同列元素c[i-1][j]的值。1. 熟悉动态规划的基本思想;

m0_62795276的博客 625

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

【深大算法设计与分析】实验二 分治法求最近点对问题 实验报告 附代码

【内附代码】【深大算法设计与分析】实验二 分治法求最近点对问题 实验报告

m0_74268508的博客 973

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

《算法设计与分析》实验报告(二)之m钱买n鸡

因此我们将算法加以改进:即:在公鸡(x),母鸡(y)数量确定后,根据总数100只,小鸡的数量z也就确定为:z=100一x-y,无需再对小鸡的数量进行枚举,此时的约束条件:5x+3y+z/3=100 且小鸡的数量是3的倍数,这样只需枚举20*34=660次。现在假定各鸡种的价格不变,拥有的钱数为m,需要购买的鸡数为n,试求出所有可能的购买方案总数和每种方案详情。然而对于同一个问题,可以选择不同的美居范围,不同的枚举对象,这样解决问题的效率差别可能会很大。首先设n1,n2,n3分别为鸡翁、鸡母、鸡雏的数量。

Li的博客 698

#中北大学算法分析与设计实验报告二(选择排序,冒泡排序,堆排序)

实验二 蛮力优化算法实验题目1、排序问题程序设计 (1)掌握选择排序和起泡排序的基本思想; (2)掌握两种排序方法的具体实现过程; (3)在掌握的基础上编程实现两种排序方法。 题目2、整数排序问题 增强学生对算法时间复杂度的理解与应用。(1)根据实验内容设计算法伪代码进行算法描述; (2)利用C++/C/Java等编程语言对算法伪代码进行工程化实现; (3)输入测试用例对算法进行验证; (4)列出算法时间复杂度模型并与计算机运行统计时间进行对比分析。题目1: 输入一个待排序的序列,分别用选择排序和起泡排序两

weixin_55346654的博客 3296

【编译原理】实验二 预测分析算法的设计与实现

通过预测分析算法的设计与实现,加深对自上而下语法分析方法的理解,尤其是对自上而下分析条件的理解。输入文法及待分析的输入串,输出其预测分析过程及结果。1. 参考数据结构(1)/*定义产生式的语法集结构*///产生式//原始文法的产生式集(2)/*变量定义*///终结符号//非终结符号//所有符号//各产生式右部的FIRST集//各产生式左部的FOLLOW集//分析表2. 判断文法的左递归性,将左递归文法转换成非左递归文法。(该步骤可以省略,直接输入非左递归文法)。

qq_65319940的博客 1991

算法分析与设计实验报告——二分搜索算法的实现

算法分析与设计实验报告——二分搜索算法的实现 目录:算法分析与设计实验报告——二分搜索算法的实现一、 实验目的二、实验要求三、 实验原理四、 实验过程(步骤)五、 运行结果六、实验分析与讨论七、实验特色与心得附件一 实验过程(步骤)附件二 运行结果 一、 实验目的 掌握分治法的基本思想,建立算法复杂度的理论分析与实验分析的联系,深刻体会算法复杂度作为算法的好坏评价指标的本质含义。 二、实验要求 用c++语言实现二分搜索算法,分析时间复杂性。实现二分搜索的递归与非递归程序,并进行跟踪分析其执行过程,体会两者

千色千寻的博客 8748

算法设计与分析实验报告——贪心算法应用

正是由于这种差别,动态规划算法通常以自底向上的方式解各子问题,贪心算法则通常以自顶向下的方式进行,以迭代的方式做出相继的贪心选择,每做一次贪心选择,就将所求问题简化为规模更小的子问题。对于一个具体问题,要确定它是否具有贪心选择性质,必须证明每步所做的贪心选择最终导致问题的整体最优解,通常可以用类似于证明活动安排问题的贪心选择性质时所采用的方法来证明。贪心策略在解决问题时,通常将问题分解为一系列的子问题,然后逐个解决子问题,每一步都选择当前状态下的最优解,并期望通过这样的局部最优选择来达到全局最优解。

m0_74015467的博客 2834

算法设计与分析实验报告-回溯法

算法设计与分析实验报告-回溯法。掌握回溯法的基本思想;掌握回溯法的算法框架;掌握回溯法的基本应用。​LeetCode22.括号生成,​LeetCode17.电话号码的字母组合。

m0_51657509的博客 964

《算法设计与分析》期末不挂科

考前知识点整理算法分析基础算法的定义算法正确性算法的性质程序的定义程序与算法的区别算法设计和分析的步骤复杂度分析算法的时间复杂性算法渐近复杂性渐近分析的记号渐近上界记号渐近下界记号非紧上界记号非紧下界记号紧渐近界记号意义算法分析中常见的复杂性函数 我们学校开设的这门课,过于理论,实践太少,考试不会太难,一起学习,一起不挂科! 但是算法平时一定要练哦!加油! 算法分析基础 算法的定义 算法是指解决问题的一种方法或一个过程。 算法是若干指令的有穷序列。 算法正确性 对每一个输入实例算法都能终止,并给出

全网粉丝30W+,优快云、稀土掘金人工智能领域签约作者,人工智能、大模型、Python 爬虫,商务合作,请私信沟通。 8万+

算法设计与分析实验报告-动态规划算法

算法设计与分析实验报告-动态规划算法。理解动态规划算法的概念;掌握动态规划算法的基本要素;掌握设计动态规划算法的步骤和策略。

m0_51657509的博客 2013
上一篇: 数据结构(六)——树
下一篇: 算法设计与分析实验报告(一)
future_dreaming
博客等级 码龄5年 11粉丝 15原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值