0
点赞
收藏
分享

微信扫一扫

算法简单对比nodejs,golang,rust


let start_time = Date.now();

for(let a=0;a<2001;a++){
for(let b=0;b<2001;b++){
for(let c=0;c<2001;c++){
if(a*a + b*b == c*c && a + b +c == 2000){
console.log(`a, b, c: ${a} ${b} ${c}`);
}
}
}
}

let end_time = Date.now();

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

package main

import (
"fmt"
"time"
)

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

for a := 0; a < 2001; a++ {
for b := 0; b < 2001; b++ {
for c := 0; c < 2001; c++ {
if a*a+b*b == c*c && a+b+c == 2000 {
fmt.Println(a, b, c)
}
}
}
}

useTime := time.Now().Sub(t1)
fmt.Println(useTime)
}

// use std::time::{Duration, SystemTime};
use std::time;

fn main() {
let t1 = time::Instant::now();

for i in 0..2001 {
for j in 0..2001 {
for k in 0..2001 {
if i * i + j * j == k * k && i + j + k == 2000 {
println!("i,j,k={}, {}, {}", i, j, k);
}
}
}
}

let t2 = time::Instant::now();
println!("{:?}", t2.duration_since(t1));
}

nodejs: v14.18 – 6.761s
golang – 9.270648008s
rust – 10.731204105s

很诧异!但是应该是rust和go浪费在了最后时间计算上了!


举报

相关推荐

0 条评论