public class Improve {
/**
* 斐波那契数列的实现方法改进
*
* @不学无术
*/
public static void main(String[] args) {
for (int i = 1; i <= 11; i++) {
System.out.print(OriginalRecursion(i) + " ");
System.out.print(ImproveOne(i) + " ");
System.out.print(ImproveTwo(i) + " ");
System.out.print(ImproveThree(i) + " ");
System.out.println();
}
}
/*
* 递归算法
*/
private static int OriginalRecursion(int n) {
if (n <= 2)
return 1;
return OriginalRecursion(n - 1) + OriginalRecursion(n - 2);
}
/*
* 最优时间复杂度和空间复杂度算法
*/
private static int ImproveOne(int n) {
int a = 0;
int b = 1;
for (int i = 1; i < n; i++) {
a = a + b;
a = a + b;
b = a - b;
a = a - b;
}
return b;
}
/*
* 数组实现
*/
private static int ImproveTwo(int n) {
int[] a = new int[1011];
a[0] = 0;
a[1] = 1;
for (int i = 2; i <= n; i++) {
a[i] = a[i - 1] + a[i - 2];
}
return a[n];
}
/*
* 数组实现方法的改进,三个变量
*/
private static int ImproveThree(int n) {
int a = 1;
int b = 1;
int c;
for (int i = 1; i <= n - 2; i++) {
c = a + b;
b = a;
a = c;
}
return a;
}
}
/*
* Console:
* 1 1 1 1
* 1 1 1 1
* 2 2 2 2
* 3 3 3 3
* 5 5 5 5
* 8 8 8 8
* 13 13 13 13
* 21 21 21 21
* 34 34 34 34
* 55 55 55 55
* 89 89 89 89
*/
《Java_斐波那契数列实现方法_改进》
最新推荐文章于 2021-07-22 16:40:34 发布