目录

一部电影 - 《土拨鼠之日》

递归和循环

递归三要素

一个栗子:求1-n的总和

小结


  • 一部电影 - 《土拨鼠之日》

递归剧情的电影:男主Phil陷入时空错乱中,开启了他怀疑人生的一天,每天醒来生活中都会出现相同的人,发生同样的事情,每天起床都有同样的电台广播,有个人会和他搭讪,老太太会和他聊天询问他早餐和天气,路上遇见乞丐和卖保险的旧朋友,报导节目等等,无论他如何选择度过这一天,他都始终无法再前进一步,直到女主Rita被他打动并且共度良宵后,才停止了这永远重复的一天。类似的电影还有《恐怖游轮》

  • 递归和循环

我们可以将这部电影的拍摄手法称之为递归拍摄手法,递归的本质也是一种循环,重复的自己调用自己,和死循环不一样,递归会有条件的变化,直到条件变化到特定的时候,递归结束,而电影中的结束条件就是男主撩到女主收获爱情。递归操作不当就容易引起死循环,比如电影中的男主如果是个gay里gay气的人,对女人根本不感兴趣,那么可能他就永远活在土拨鼠之日中了。

  • 递归三要素

  1. 每次递归变量必须要有变化,递归的规模要减少
  2. 必须要有终止的边界条件,否则将陷入死循环
  3. 提炼相同的操作逻辑,前一次的输出就是后一次的输入
  • 一个栗子:求1-n的总和

public class ExampleUnitTest {@Testpublic void recursiveSumTest() {int i = recursiveSum(100);//求1-100的总和System.out.println("1-100的总和为:"+ i);}/*** 利用阶乘求1-n的总和* @param n* @return*/public int recursiveSum(int n) {if (n == 1){return 1;}return n + recursiveSum(n -1);}
}

运行结果:1-100的总和为:5050

运行轨迹:

  • 小结

  1. 递归必须要一个回归的出口,要不然将陷入死循环
  2. 深层次的递归将频繁进出栈分配内存空间,运行效率较低,当层次较深时不推荐使用递归

算法探索实录 - 4、递归相关推荐

  1. dbscan算法_DBSCAN聚类算法探索

    作者:单华 DBSCAN是非监督学习中密度学习算法里的佼佼者.本文对DBSCAN做了简单的探索,全文无数学公式,共2800余字. 在ARGO之前提到的聚类与K-Means一文中,提到了密度聚类方法DB ...

  2. 反汇编算法介绍和应用——递归下降算法分析

    上一篇博文我介绍了Windbg使用的线性扫描(linear sweep)反汇编算法.本文我将介绍IDA使用的递归下降(recursive descent)反汇编算法.(转载请指明来源于breaksof ...

  3. 算法设计与分析——递归与分治策略——全排列

    算法设计与分析--递归与分治策略--全排列 全排列问题的解决是通过分治与递归思想来解决的 首先判断是否递归到了最后一位,如果递归到了最后一位,则输出他当前的全排列序列. 如果没有到达最后一位,则循环的 ...

  4. c语言 连通域算法 递归,VC++ 6.0编写计算机图形学中的种子填充算法,想用递归的八向连通域,求助!...

    VC++ 6.0编写计算机图形学中的种子填充算法,想用递归的八向连通域,求助!0 填充函数代码如下: void CComputerGraphicsView::PolygonFill2()//区域填充函 ...

  5. 旅行场景下的推荐算法探索

    今天给大家分享阿里巴巴集团高级算法温鸿所做的分享<旅行场景下的推荐算法探索.pdf>,关注推荐算法及其实践的伙伴们别错过啦!(到省时查报告小程序中搜索"推荐".&quo ...

  6. 广义多目标算法探索实践

    分享嘉宾:周建斌 58同城 算法高级架构师 编辑整理:吴雪松 小米 出品平台:DataFunTalk 导读:58部落是面向58同城同镇用户的内容社区,主要产品形态为PGC.UGC的信息流,样式丰富.基 ...

  7. Python算法:推导、递归和规约

    Python算法:推导.递归和规约 注:本节中我给定下面三个重要词汇的中文翻译分别是:Induction(推导).Recursion(递归)和Reduction(规约) 本节主要介绍算法设计的三个核心 ...

  8. sku组合查询算法探索

    2019独角兽企业重金招聘Python工程师标准>>> sku组合查询算法探索 http://ued.taobao.org/blog/2012/07/sku-search-algor ...

  9. 【算法套路】-【递归篇】【递归三要素】

    [算法套路]-[递归篇] 文章目录 [算法套路]-[递归篇] 前言 递归三要素 前言 本文参考·[代码随想录]·大佬的二叉树:一入递归深似海,从此offer是路人,希望在写递归脑子糊涂的时候,给自己一 ...

  10. A-Star算法探索和实现(一)

    什么是A-Star算法? A*搜寻算法俗称A星算法,又叫A-Star算法.A*算法是比较流行的启发式搜索算法之一,被广泛应用于路径优化领域(引用自百度百科).在游戏开发中,我们可以将A*算法作为一种敌 ...

最新文章

  1. 一个简单实用的,基于EF的三层架构
  2. 老大说要自动化测试,我是怎么做的可以看看
  3. 盘点那些你可能错过的CNCF优秀开源项目
  4. centos恢复图形界面_centos7安装图形界面
  5. 在java中使用JMH(Java Microbenchmark Harness)做性能测试
  6. 使用基于列表的表单控件
  7. OpenShift 4 之Service Mesh教程(5)- 断路器Circuit Breaker
  8. C4-Squid-Purge
  9. 关于重装系统后,电脑出现提示许可证过期的解决方案
  10. 计算机应用基础——计算机软件(一)
  11. 我的web前端工作日志14------2020年度总结
  12. Java基础 实验二:类和对象
  13. RAR文件格式学习(了解)
  14. Point-Set Topological Spatial Relations 点集拓扑空间关系
  15. 税务信息化与计算机技术应用开发,税务信息化与计算机技术应用开发工作岗位年度个人工作总结...
  16. 在MAC下如何显示隐藏文件夹
  17. Apollo客户端使用与配置解析
  18. Python绘制美女乘风破浪词云舞蹈视频
  19. 宝藏平台——阿里云云效DevOps
  20. 【高等数学】02 函数的特性,有界性,无界性,单调性,奇偶性,周期性,反函数,复合函数

热门文章

  1. Maya: Time Editor Maya教程:时间编辑器 Lynda课程中文字幕
  2. 基于Fruits-360水果数据集的TensorSpace神经网络3D可视化(水果识别可视化)
  3. vPro平台再进化:专为商务而生,助力企业数字化大时代
  4. 白色用rgba怎么设置html,在白色上将RGB转换为RGBA
  5. Vue整合Markdown组件+SpringBoot文件上传+代码差异对比
  6. linux-网络安全防火墙
  7. linux常用命令-part2
  8. 220805我文明的体现在书法艺术上此对标志LOGO设计产生的积极深远影响分析
  9. Python爬虫爬企查查数据
  10. 从身边的移动支付说起