Python和Go递归效率对比
使用递归实现的斐波那契数列来对比Python和Golang递归效率
- Python代码
import time
def fib(n):
if n < 1:
return -1
if n == 1 or n == 2:
return 1
return fib(n-1) + fib(n-2)
if __name__ == '__main__':
t1 = time.time()
sum = fib(45)
print("sum=", sum)
t2 = time.time()
print("use time :", t2 - t1)
Go代码
package main
import (
"fmt"
"time"
)
func Fib(n int) int64 {
if n < 1 {
return -1
} else if n == 1 || n == 2 {
return 1
} else {
return Fib(n-1) + Fib(n-2)
}
}
func main() {
t1 := time.Now()
sum := Fib(45)
t3 := time.Since(t1)
fmt.Println("sum=", sum)
fmt.Println("use time:", t3)
}
- 运行结果
Python
sum= 1134903170
use time : 470.26214051246643
Go
sum= 1134903170
use time: 8.5616804s
结果Python运行时间是Go运行时间的近55倍