•在用分治法解决问题时,由于子问题的数目往往是问题规模的指数函数,因此对时间的消耗太大。
•动态规划的思想在于,如果各个子问题不是独立的,不同的子问题的个数只是多项式量级,而我们能够保存已经解决的子问题的答案,在需要的时候再找出已求得的答案,这样就可以避免大量的重复计算。
由此而来的基本思路是,用一个表记录所有已解决的子问题的答案,不管该问题以后是否被用到,只要它被计算过,就将其结果填入表中
斐波纳斯//哈哈
int F(int n, int a[N]) { if (n==0) return 0; if (n==1) return 1; a1=a[n-1]; a2=a[n-2]; if。。。。 //用a1和a2来代替已经算出来的结果,就能避免一定程度上的递归,用来减少计算时间和计算空间 return F(n-1, a)+F(n-2, a); }
时间: 2024-12-19 19:42:07