递归简论
来源:互联网 发布:d3.js官网demo 编辑:程序博客网 时间:2024/06/05 17:28
递归的四条基本法则
- 基准情形。必须总要有某些基准情形,他无需递归就能解出。
- 不断推进。对于那些需要递归求解的情形,每一次递归调用都必须要使状况朝向一种基准情形推进。
- 设计法则。假设所有的递归调用都能运行。
- 合成效益法则。在求解一个问题的同意实例时,切勿在不同递归调用中做重复性的工作。
【Mark Allen Weiss–Data Structures Algorithm Analysis in Java】
Demo:
public class PrintDigit {public static void main(String[] args) { int n = 123456; resolve(n); System.out.println(); System.out.print("-----------------------"); System.out.println(); printOut(n);//递归输出分解后的数}//递归public static void printOut(int n){ if(n>=10) printOut(n/10); System.out.print(n%10+" ");}//顺序结构public static void resolve(int n){ int [] a= new int[Integer.bitCount(n)]; for(int i=0;n>0;i++) { a[i]=n%10; n/=10; } for (int i = (a.length-1); i>=0; i--) { System.out.print(a[i]+" "); }}}
Result:
1 2 3 4 5 6 -----------------------1 2 3 4 5 6
输出结果一样,但是递归代码简洁许多,而且递归策略是从第一位开始往下输出,而正常分解的话,还需要数组进行转换。
阅读全文
0 0
- 递归简论
- 递归简论
- 递归简论
- 算法递归简论
- 递归简论学习
- 递归简论
- 递归简论
- 递归简论
- 二、递归简论-算法
- 递归算法简析
- 简析递归
- 递归简析
- 简析递归算法
- java递归简析
- 递归算法简析
- 递归
- 递归
- 递归
- jdk源码分析--了解class文件
- NYOJ 【108】士兵杀敌 一 (线段树 + 模板题)
- STM32在IAR和MDK中使用printf进行串口打印的实现方法
- Drying (二分法)
- python网络爬虫与信息采取之解析网页(二)---BeautifulSoup库的find()和find_all()
- 递归简论
- JAVA深入研究——Method的Invoke方法。
- poj 2065 SETI(高斯消元)
- 循环队列
- 聚类方法之k-mean算法
- hpuoj【1410】QAQ & 火星情报局【数学】
- Django编写中间件实现url自定义过滤
- 面向对象思想-封装拖拽对象
- PHP与Shell交互