- 1
- 0
- 约5.32千字
- 约 3页
- 2023-12-08 发布于中国
- 举报
[Java8](8)Lambda表达式对递归的优化(上)-使⽤尾递归.
递归优化
很多算法都依赖于递归,典型的⽐如分治法(Divide-and-Conquer)。但是普通的递归算法在处理规模较⼤的问题时,常常会出现
StackOverflowError。处理这个问题,我们可以使⽤⼀种叫做尾调⽤(Tail-CallOptimization)的技术来对递归进⾏优化。同时,还可以通过暂
存⼦问题的结果来避免对⼦问题的重复求解,这个优化⽅法叫做备忘录(Memoization)。
本⽂⾸先对尾递归进⾏介绍,下⼀票⽂章中会对备忘录模式进⾏介绍。
使⽤尾调⽤优化
当递归算法应⽤于⼤规模的问题时,容易出现StackOverflowError,这是因为需要求解的⼦问题过多,递归嵌套层次过深。这时,可以采⽤
尾调⽤优化来避免这⼀问题。该技术之所以被称为尾调⽤,是因为在⼀个递归⽅法中,最后⼀个语句才是递归调⽤。这⼀点和常规的递归⽅
法不同,常规的递归通常发⽣在⽅法的中部,在递归结束返回了结果后,往往还会对该结果进⾏某种处理。
Java在编译器级别并不⽀持尾递归技术。但是我们可以借助Lambda表达式来实现它。下⾯我们会通过在阶乘算法中应⽤这⼀技术来实现递
归的优化。以下代码是没有优化过的阶乘递归算法:
publicclassFactorial{
您可能关注的文档
最近下载
- 青海省普通高中学生综合素质评价手册.docx VIP
- 2025秋苏教版科学三年级上册教学设计(附目录).docx
- 2026中国建设银行招聘考试(信息技术类)历年参考题库含答案详解.docx VIP
- 2026中国建设银行招聘考试(信息技术类)历年参考题库含答案详解.docx VIP
- 2012年混凝土路面砖.pdf VIP
- GB_T50594-2010:水功能区划分标准.pdf VIP
- 逻辑判断 600 分析篇111.pdf VIP
- 餐饮个性化服务摭谈.doc VIP
- 2026年陕西省中考语文试题卷 (含答案及解析).docx
- 9第四章 平面构成的基本形式--肌理《平面构成》教学课件.ppt VIP
原创力文档

文档评论(0)