递归算法改进---表存储代替冗余递推
来源:互联网 发布:java开发工作描述 编辑:程序博客网 时间:2024/05/01 06:57
/**求解递归关系 *Sum=C(0)+C(1)+...+C(N-1); 即求和运算 *C(N)=(2/N) Sum +N **/public static double eval( int n){ if (n == 0) return 1.0; else { duoble sum= 0.0; for(int i= 0; i< n; i++) sum += eval(i);//冗余递归调用 return 2.0* sum/n + n; }}//用一个表代替//将前面的计算结果全部存储在c[] 数组中// 以O(N*N)运算public static double eval( int n){ double c[]= new double [n+1]; c[0]= 1.0; for(int i= 1; i<=n; i++) { double sum= 0.0; for(int j=0; j< i; j++) sum+= c[j]; //但是对每一个i,j都是从0开始到i,还是重复计算了。 c[i]= 2.0 * sum/ i + i; } return c[n];}// 完美程序O(N)运算public static double eval(int n){ double c[]= new double [n+1]; c[0]= 1.0; double sum= 0.0; for(int i= 1; i<= n; i++) { sum += c[i-1]; c[i]= 2.0 * sum/ i+ i; } return c[n];}
0 0
- 递归算法改进---表存储代替冗余递推
- 算法之---递推与递归
- 递归算法-----递归算法优化------非递归算法(递推,迭代)----运行时间
- 递归算法改进---fibonaci 函数
- C++递归递推算法之三角形划分平面区域
- 常见算法—累积累加、迭代、递推、递归
- 递推与递归
- 递推与递归
- hdu递归,递推
- 递归,递推思想
- 递推与递归
- 递推与递归
- 递归与递推
- 递归和递推
- 递推与递归
- 递推和递归
- 递归递推总结
- 递归递推总结
- python matplotlib 2D 散点图的制作(输入二维坐标)
- 分数转换
- Java多线程线程池(4)--线程池的五种状态
- 配置红帽系列yum源
- CDOJ 215 吴队长征婚 DFS+剪枝
- 递归算法改进---表存储代替冗余递推
- SpringMVC
- 父窗口中获取iframe中的元素
- SpringMVC-学习笔记(1)——理解MVC及快速入门
- 理解Android中的LayoutInflater
- 2016年中国软件产业分析报告
- MIT-BIH心率失常数据提取及部分MATLAB程序解释
- (转)推荐几款实用的Android Studio 插件
- WebGL学习系列-基础矩阵变换