数据结构与算法之美专栏学习体会

10 递归

  递归的含义:一种非常简洁、高效的编码技巧,方法/函数调用自身的方式称之为递归,调用为“递”,返回为“归”。

  所有的递归问题都可以用递推公式来表达。

  优点:代码表达能力强,编码简洁。

  缺点:(1)空间复杂度高,存在栈溢出风险(策略:可以设置递归次数强行终止条件);(2)存在重复计算,针对这一点可以(策略:可以额外增加哈希表来快速查找结果而减少重复计算);(3)过多函数调用耗时较长。

  针对上述缺陷,任何一个递归问题(笼统来讲)都可以转化为非递归实现方式。方法:抽象出递推公式、初始值、边界条件,然后用循环来实现。

猜你喜欢

转载自www.cnblogs.com/kuliuheng/p/10633340.html