黑马程序员——递归原理学习笔记
来源:互联网 发布:qq群关系数据库在线 编辑:程序博客网 时间:2024/06/03 05:07
-----------android培训、java培训、java学习型技术博客、期待与您交流!------------
递归思想:任何递归都是基于相似这个基本特征
怎样制造相似性:1.对“我的工作”进行非对称性拆分
2.适当引入参数
递归出口:条件判断,有时不调用递归,进入递归后立即返回
有时可以间接递归:f方法调用g方法,g再调用f.
递归例子:
//求阶层f(int n){if(n==1)return n;//递归出口return n*f(n-1);//方法主体}
实际应用:
//组合://思路:每一个字符都有被选择和不被选择两种情况,如果被选择则指针将要指的下一个位子的只能从剩余的字符中进行选择,指针所指的每一个位子都是这种情况,运用递归思想编出运算主体,当剩余可选的字符为0或指针已经比num大了,递归结束static char[] ch={'a','b','c'};void f(boolen[] x,int start,int num){if (num==0){show();return;}if (start>=num){return;}x[start]=true;f(x,start+1,num-1);x[start]=false;f(x,start+1,num);}void show(char[] ch){for (int i=0;i<ch.length ;i++ ){System.outprint(ch[i]);}System.out.println();}排序:
//排序f(char[] ch,int k){if (k==(ch.length-1)){for (int i=0;i<ch.length ;i++ ){System.out.print(ch[i]+" ");}System.out.println();return;}{for (int i=k;i<ch.length ;i++ ){char t=ch[k];ch[k]=ch[i];ch[i]=t;}f(ch,k+1);for (int i=k;i<ch.length ;i++ ){char t=ch[k];ch[k]=ch[i];ch[i]=t;}}}
0 0
- 黑马程序员——递归原理学习笔记
- 黑马程序员学习笔记——排列组合的递归
- 黑马程序员 — 递归
- 黑马程序员————java中的递归原理
- 黑马程序员_学习笔记第20天——File类、递归、Properties、打印流
- 黑马程序员_学习笔记第19天——File类、递归、Properties、打印流
- 黑马程序员——递归
- 黑马程序员——递归
- 黑马程序员——对于递归的学习
- 黑马程序员——HTML学习笔记
- 黑马程序员——多线程学习笔记
- 黑马程序员——HTML学习笔记
- 黑马程序员——异常学习笔记
- 黑马程序员——HTML学习笔记
- 黑马程序员—学习笔记—接口
- 黑马程序员——【学习笔记】反射
- 黑马程序员——枚举学习笔记
- 黑马程序员—学习笔记—多线程
- java.lang.OutOfMemoryError: Java heap space的解决办法
- 基于组件的软件工程
- 八皇后问题
- Notepad++使用心得和特色功能介绍 -> notepad/ultraedit的最好的替代品
- iOS 使用CorePlot教程
- 黑马程序员——递归原理学习笔记
- NoClassDefFoundError: org.apache.http.entity.mime.content.StringBody
- 国内最全最详细的hadoop2.2.0集群的HA高可靠的最简单配置
- cocos2dx3.2 整体概览(二)—— Director(导演)
- Chapter 3 Protecting the Data(2):分配列级权限
- Cocos2d-x 3.3 的3D开发功能介绍
- 跑马灯效果 文字上下滚动效果
- 2014华为南研所实习生求职
- C#对字符串的相关操作(后期逐步积累更新)