《数据结构与算法分析》学习笔记(一)——递归思想!
递归的四条基本法则!
一、基准情形:
必须总有某些基准情形,它无须递归就能解出。
理解起来很简单,递归递归,就是不停的调用同一段函数代码,如果不设置一个出口,那便没有办法停止递归而导致内存爆满而程序崩溃。
e.g
1 int Bad(unsigned int N) 2 { 3 if(N==0) 4 { 5 return 0; 6 } 7 else 8 { 9 return Bad(N/3+1)+N-1; 10 } 11 }
当N=1的时候就没有出口,而是不断的递归N=1这段代码。
二、不断推进:
每次递归都必须朝着基准的方向前进,就像查英译英的字典一样,查一个我们不会的词的时候又在解释中碰到不认识的词,就要继续查下去,但最后,肯定有一个我们不需要查就认识的单词,此时倒退过来就能明白最初查的词的意思,所以递归一定要朝基准情况前进。
三、设计法则:
即在需求内,所有的可能都要实现。
四、合成效益法则:
因为系统每次递归是要通过开一个固定大小的不相同的内存空间的,所以尽力保证在求解同一问题的同一实例时,切勿在不同的递归调用钟做重复性的工作。
本文作者:Blue Mountain
本文链接:https://www.cnblogs.com/BlueMountain-HaggenDazs/p/3889961.html
版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步