首页 > 编程语言 >算法,比较rust golang nodejs 斐波那契算法

算法,比较rust golang nodejs 斐波那契算法

时间:2022-10-09 18:07:11浏览次数:62  
标签:return nodejs second long 斐波 算法 num fid time


运行环境:macOS m1

javascript

function fid(n) {
if (n == 0) return 0
if (n == 1) return 1
return fid(n - 1) + fid(n - 2)
}

let start_time = Date.now();

fid(50)

let end_time = Date.now();
console.log(`一共花费的时间为:${(end_time - start_time)/1000}s`); // 一共花费的时间为:170.906s
console.log('结束!');

dotnet6 c#10

var t1 = DateTime.Now;

fid(50);

var t2 = DateTime.Now;
Console.WriteLine(t2-t1); // 00:01:14.6404730 -> 74s

long fid(int n) {
if (n == 0) {
return 0;
}
if (n == 1) {
return 1;
}
return fid(n-1) + fid(n-2);
}

java

import java.util.*;

class Test {
public static void main(String[] args){
long t1 = new Date().getTime();

long num = fid(50);
System.out.println(num); // 12586269025

long t2 = new Date().getTime();
System.out.printf("time use %d ms", t2-t1); //time use 39455 ms% == 39s
}

public static long fid(int n) {
if (n == 0) {
return 0;
}
if (n == 1) {
return 1;
}
return fid(n-1) + fid(n-2);
}

}

go

package main

import (
"fmt"
"time"
)

func main() {
t1 := time.Now()

num := fid(50)
fmt.Println(num)

useTime := time.Since(t1) // 12586269025 58s
fmt.Println(useTime)
}

func fid(n uint64) uint64 {
if n == 0 {
return 0
}
if n == 1 {
return 1
}
return fid(n-1) + fid(n-2)
}

c++

#include "iostream"
#include "time.h"

long int fid(int n) {
if (n == 0) return 0;
if (n == 1) return 1;
return fid(n - 1) + fid(n - 2);
}

int main()
{
time_t t1 = time(NULL);

long int num=fid(50);
std::cout << num << std::endl;

time_t t2 = time(NULL);
std::cout << "use time: " << t2-t1 << std::endl; // 108s

return 0;
}

rust

use std::time::Instant;

fn main() {
let start=Instant::now();

let num = fid(50);
println!("{}", num);

println!("time use {:?}", start.elapsed()); // 12586269025 time use 34.561594s

}

fn fid(num: u64) -> u64 {
match num {
0 => 0,
1 => 1,
_ => fid(num - 1) + fid(num - 2)
}
}

以上结论:

macOS-M1运行环境下:

  • javascript- 大约170s
  • c++- 大约108s
  • c#- 大约74s
  • golang- 大约58s
  • java17- 大约39s
  • rust- 大约34s

Windows运行环境下:

  • javascript- 大约155.7s
  • c++- 大约91s
  • c#- 大约73s
  • golang- 大约61s
  • java17- 大约53.5s
  • rust- 大约29.8s

标签:return,nodejs,second,long,斐波,算法,num,fid,time
From: https://blog.51cto.com/u_12836588/5740967

相关文章

  • 【路径规划-TSP问题】基于蚁群算法求解旅行商问题含Matlab代码
    ✅作者简介:热爱科研的Matlab仿真开发者,修心和技术同步精进,matlab项目合作可私信。......
  • 53道常见NodeJS基础面试题
    说到前端就不得不提到后端,我们给用户展示页面所需的数据正是从后端获取的,所以了解后端的运行原理和技术的实现很有必要。 Node.js是一个不错的选择,它是基于JavaScript语......
  • AcWing算法提高课 卡特兰数
    卡特兰数的基本模型是,(0,0)->(n,n)且不越过x=y这条线等价于另一个模型:01序列且全部前缀中0的个数都大于1,其中0对应于x方向移动,1对应y方向移动例题:https://www.acwing.co......
  • 统计学习方法学习笔记-09-EM算法及其推广
    首先叙述EM算法,然后讨论EM算法的收敛性,作为EM算法的应用,介绍高斯混合模型的学习,最后介绍EM算法的推广-GEM算法EM算法的引入目的:概率模型有时候既含有观测变量,也含有隐变......
  • Java加解密-SM4国密算法
    SM4国密算法简介SM4依赖包SM4类SM4_Context类SecuritySM4类=================================== SM4国密算法简介与DES和AES算法相似,国密SM4算法是一种分组加密......
  • 【最优化】简单线搜索(黄金分割法,斐波那契法......)
    黄金分割法(GoldenSectionMethod)和斐波那契法(FibonacciMethod)极为相似,唯一的区别就是试探点的公式不一样而已。相比较,斐波那契法更为灵活更为强大。斐波那契法介于二分搜......
  • 计算机算法设计与分析 实验题 及代码
    很舒服的题目,不难。科班的知识就是舒服。实验2:递归与分治实验目的熟悉递归算法的基本思想和基本步骤,熟练掌握递归公式的推导和定义方法,用递归算法解决实际问题。实验要......
  • python递归算法
    递归是一种常见的解决问题的方法,即把问题逐渐简单化。递归的基本思想就是“自己调自己”,一个使用递归技术的方法将会直接或间接的调用自己。利用递归可以用简单的程序来解决......
  • 图论-最短路算法
    一、floyd1.介绍 floyd算法只有五行代码,代码简单,三个for循环就可以解决问题,所以它的时间复杂度为O(n^3),可以求多源最短路问题。 2.思想: Floyd算法的基本思想如......
  • 招聘|瑞马智能招3D视觉算法工程师
    公司介绍:江苏国华管塔制造有限公司,位于徐州经济开发区,地理位置优越,交通便利。公司注册资金1.02亿元,建筑面积约4.5万平方米,员工600多人。主要从事各类输电线路钢管杆、钢管塔......