您的位置:首页 > 其它

斐波那契数列的运算时间

2014-03-18 18:26 176 查看
斐波那契数列,F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)

Fibonacci Sequence Calculator

硬件: I3 Cpu + 8G Ram

1.用C#递归计算:

static void Main(string[] args)
{
int n = 40;
Stopwatch watch = new Stopwatch();
watch.Start();
int num = RecursionFibonacci(n);
watch.Stop();
Console.WriteLine("n="+n);
Console.WriteLine("num=" + num);
Console.WriteLine("time=" + watch.ElapsedMilliseconds+"ms");
}
static int RecursionFibonacci(int n)
{
if (n < 1)
return 0;
if (n == 1)
return 1;
return RecursionFibonacci(n - 1) + RecursionFibonacci(n - 2);
}




2.用java递归计算:

package com.example.fibonacci;

/**
* Created by Administrator on 3/22/2014.
*/
public class Fibonacci {
public static void main(String[] args){
int n=40;
long startTime=System.currentTimeMillis();
int num=RecursionFibonacci(n);
long endTime=System.currentTimeMillis();
System.out.println("n="+n);
System.out.println("num="+num);
System.out.println("time="+(endTime-startTime)+"ms");
}
public static int RecursionFibonacci(int n){
if(n<1)
return 0;
if(n==1)
return 1;
return RecursionFibonacci(n-1)+RecursionFibonacci(n-2);
}
}




c#怎么就用了2238ms呢,落后的原因是什么?

3.用javascript递归计算:

<div>
Fibonacci
<input type="text" id="txtNum" value="40"/>
<input type='button' id='btnFibonacci' value='Recursion' onclick="Do()" />
</div>
<script type="text/javascript">
function RecursionFibonacci(n) {
if (n < 1) {
return 0;
}
if (n == 1) {
return 1;
}
var num = RecursionFibonacci(n - 1) + RecursionFibonacci(n - 2);
return num;
}
function Do () {
var n = document.getElementById("txtNum").value;
var beginDate = new Date();
var num = RecursionFibonacci(n);
var time = new Date() - beginDate;
alert("n=" + n + "; num=" + num + "; time=" +time+"ms");
}
</script>


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: