首页 > 编程语言 >1.不同算法对运行时间的影响

1.不同算法对运行时间的影响

时间:2023-01-09 21:00:29浏览次数:43  
标签:int 不同 fib1 second 算法 static public 运行

package suanfa1;


import  java.util.*;


public class Main {

    public static int fib1(int n){
        if( n <= 1) return n;
        return fib1( n - 1) + fib1 ( n - 2);
    }

    public static int fib2(int n ){
         if(n <= 1) return n;
         int first = 0;
         int second = 1;
         for(int i = 0; i < n - 1;i++){
             int sum = first + second;
             first = second;
             second = sum;
        }
         return second;
    }
    public static void main(String args[]){

            System.out.print(fib2(20));

    }

}

分析以上两种不同的算法实现的斐波那契数列第n项的运算。

可以发现第一个函数和第二个函数的效率具有很大的差别。

对fib1来说: 他进行了大量的重复操作。如图。 O(2的n次方)。

 

 

对fib2来说,它的时间复杂度为O(n);

可见,不同的算法对时间的影响如此之高,故在工作时找到一个高效的算法十分重要。

 

标签:int,不同,fib1,second,算法,static,public,运行
From: https://www.cnblogs.com/yyhjj1314/p/17038511.html

相关文章

  • 算法设计与分析
    第一章算法概述这门课在计算机专业是核心课程,但是在我所学的智能科学与技术专业作为选修课程出现,尽管作为选修课,但是算法作为公司面试必考,有必要深入好好学习,我们在Tinto......
  • mac 中,项目运行报错 error:0308010C:digital envelope routines::unsupported
    例如:  引用网络一段话,nodev17中的OpenSSL3.0对允许算法和密钥大小增加了严格的限制,可能会对生态系统造成一些影响。在nodev17以前一些可以正常运行的的应用程序......
  • 004 python 程序运行日志使用方法
    导入包importlogging.handlersimportdatetimelogger=logging.getLogger("log")日志目录查找并创建ifos.path.isdir('log'):print("当前目录下存在log文......
  • java不同版本jdk切换
    jdk环境搭建首先要有java环境,然后安装两个不同版本的jdk,我这里就使用java8和java15CLASSPATH.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jarJAVA_HOME%JA......
  • 莫队算法学习(转载)
    1.https://blog.csdn.net/Just__Do__IT__/article/details/118991059?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167326430316782428668181%2522%252C%252......
  • 素数有关基本算法
    该文章包含模块为判断素数,分解质因数,筛素数三大模块判断素数我们最容易想到的素数判断就是试除法,就是枚举从2到n-1中所有的数,尝试从其中找到n的因数,找到了就是合数,反之......
  • 代码随想录算法训练营第13天
    今日刷题2道:239.滑动窗口最大值,347.前K个高频元素。● 239.滑动窗口最大值题目链接/文章讲解/视频讲解:https://programmercarl.com/0239.%E6%BB%91%E5%8A%A8%......
  • 【算法原理】矩阵乘法
    【算法原理】矩阵乘法一般是矩阵乘法+快速幂,结合\(dp\)普通矩阵乘法:矩阵乘法有结合律,无交换律。因此在计算一长串矩阵相乘的时候,可以依据计算难度选择计算顺序,从而......
  • Miller-Rabin算法学习笔记
    个人不是很理解Miller-Rabin算法的正确性,所以这篇东西可以图一乐(确定性判素性的方法都很慢,所以要考虑随机但是错误概率低的判素方法。首先有Fermat素性测试,即费马小定理......
  • 线性表算法相关练习
    //将两个递增的有序链表合并为一个递增的有序链表。//要求结果链表仍使用原来两个链表的存储空间,不另外占用其他的存储空间。表中不允许有重复的数据。#include<iostream>#......