当前位置: 首页 > news >正文

太原搭建网站的公司安心保险官方网站

太原搭建网站的公司,安心保险官方网站,i5 7500网站开发,企业标识设计经典案例目录什么是斐波那契数列递归写法使用递归写法的缺点迭代写法(效率高)什么是斐波那契数列 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多斐波那契(Leonardo Fibonacci)以兔子繁殖为例…

目录

  • 什么是斐波那契数列
  • 递归写法
    • 使用递归写法的缺点
  • 迭代写法(效率高)

什么是斐波那契数列

斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”,指的是这样一个数列:1、1、2、3、5、8、13、21、3

通俗地来讲,斐波那契数列就是从第三位数字开始,每位的值是其前两位的和


递归写法

使用递归方法写十分简单
从第三位数字开始,每位的值是其前两位的和

  • f(0) = 1
  • f(1) = 1
  • f(n) = f(n-1)+f(n-2)(n>3)

代码如下:

long long feibonahi(int n)
{if (n <= 2){return 1;}else{return feibonahi(n - 1) + feibonahi(n - 2);}
}

使用递归写法的缺点

我们分析一下递归算法的时间复杂度
在这里插入图片描述
可以看出这个递归方法的时间复杂度是O(2^n)

可能这是没觉得时间复杂度是O(2^n)是多大的事,所以接下来我们计算一下传不同参数,这个递归算法的运行时间:

#include <stdio.h>
#include <time.h>long long Fib(int n)
{if (n <= 2){return 1;}else{return Fib(n - 1) + Fib(n - 2);}
}
int main()
{int begin1 = clock();Fib(10);int end1 = clock();int begin2 = clock();Fib(20);int end2 = clock();int begin3 = clock();Fib(30);int end3 = clock();int begin4 = clock();Fib(40);int end4 = clock();int begin5 = clock();Fib(50);int end5 = clock();printf("end1:%d\n", end1 - begin1);printf("end2:%d\n", end2 - begin2);printf("end3:%d\n", end2 - begin3);printf("end4:%d\n", end4 - begin4);printf("end5:%d\n", end5 - begin5);return 0;
}

下面我们可以看到:
从参数从10~40的运行时间还算快,然而将50传入函数中,可以看到,会运行一段时间
在这里插入图片描述
所以使用递归方法求斐波那契数列在理论上可行,但是在实际中是不可取的一个方法

另外,我们在这也看一下2^N的“威力”

  • N==10,2^N = 1024
  • N==20,2^N = 100万
  • N==30,2^N = 10亿
  • N==40,2^N = 1万亿
  • N==50,2^N = 很大很大的数

所以我们不能使用递归算法,接下来我们写一个迭代方法


迭代写法(效率高)

int feibonahi2(int n)
{if (n == 1 || n == 2){return 1;}int a = 1;int b = 1;int c = 1;while (n > 2){c = a + b;a = b;b = c;n--;}return c;
}

这个算法的时间复杂度是O(N),上面的递归写法要好的太多太多

http://www.yayakq.cn/news/929705/

相关文章:

  • 做英语作业的网站竞价网站服务器
  • 广州海佳网络网站建设公司怎么样代做网站名称优化
  • 网站建设公司的重要性南宁网站平台
  • 网站的建设主机费用大兴区营销网络推广行业
  • 济宁鱼台网站建设精准营销及推广
  • 汕头 网站建设不同网站建设报价单
  • 做一百度网站建设小说网站首页
  • php网站怎么用mysql新建数据库建设商场黄金网站
  • 青岛建设网站的公司网站登录密码忘记了
  • 元器件网站建设案例打开云南省住房和城乡建设厅网站
  • 优秀网站建设报价广告营销策划方案怎么写
  • wordpress内存要求做seo网站的公司
  • 诸葛企业网站建设公司深圳门户网站建设专业
  • 石家庄市官方网站wordpress 为分类定模板
  • 常用于网站推广的营销手段是wordpress去掉工具栏
  • 可用的ftp网站免费安全
  • 营销型网站建设价格浅谈高校图书馆网站建设
  • 哪个网站能在家做兼职杭州 洛阳网站建设公司 网络服务
  • 网站建设赚钱流程哪里的佛山网站建设
  • 网站设计电子商务网站建设要求
  • 网站后台作用软文投放平台有哪些?
  • 做头像网站香精香料网
  • 本地服务型网站开发wordpress入门使用
  • 建设教育信息网站工作总结软件推广网络营销
  • 长沙县好的建站按效果付费如何建设运输网站
  • 昆明网站建设php上海美容论坛网站建设
  • 北京网站建设公司现状网络科技有限公司名字推荐
  • 支付集成文件放在网站哪里织梦高端大气网站模板
  • 保定网站制作企业做网站编程需要学什么软件
  • 青岛做网站建设价格低中企动力全球邮箱