Java 費(fèi)羅切和米蘭是兩種不同的算法,它們都可以用來計(jì)算斐波那契數(shù)列。
費(fèi)羅切算法是遞歸算法的一種,代碼如下:
public static int fibonacci(int n) { if (n<= 1) { return n; } return fibonacci(n - 1) + fibonacci(n - 2); }
米蘭算法是一種迭代算法,代碼如下:
public static int fibonacci(int n) { if (n<= 1) { return n; } int fib = 1; int prevFib = 1; for (int i = 2; i< n; i++) { int temp = fib; fib += prevFib; prevFib = temp; } return fib; }
這兩種算法的時(shí)間復(fù)雜度都是 O(n),但是由于遞歸的開銷較大,在計(jì)算大的斐波那契數(shù)列時(shí)費(fèi)羅切算法會(huì)比米蘭算法慢。因此在實(shí)際使用時(shí),應(yīng)該根據(jù)具體情況選擇使用哪種算法。