eclipse-luna
win732bit and jdk1.7
说明: 在动态规划中,子问题解决方案被存储在一个表中,以便这些不必重新计算。 因此,如果这个问题是没有共同的(重叠)子问题, 动态规划是没有用的。例如,二分查找不具有共同的子问题。
记忆表法:自上而下
测试main:
运行结果比较:
完整可运行程序:/* * 这一部分程序主要是用来测试记忆化存储和*/////记忆表从上而下public class MemoryAndTable { static int MAX=20; static int[] lookUp=new int[MAX];// public void initMemory(){// int i;// lookUp[MAX]=(Integer) null;// } public static int fibMemory(int n){ if(lookUp[n]==0){ if(n<=1){ lookUp[n]=n; } else{ lookUp[n]=fibMemory(n-1)+fibMemory(n-2); } } return lookUp[n]; } ////打表(自下而上) public static int fibTable(int n){ int[] f = new int[n+1]; int i; f[0] = 0; f[1] = 1; for(i=2;i<=n;i++){ f[i]=f[i-1]+f[i-2]; } return f[n]; } public static void main(String[] args) { int n=5; System.out.println(fibMemory(9)); System.out.println();// int res=0;// res=fibTable(9); System.out.println(fibTable(9)); }}
深层次理解动态规划
记得投票支持奥 !