数据结构与算法(第二季):尾调用、尾递归、回溯、剪枝

尾调用(Tail Call)

一、概念

  • 一个函数的最后一个动作是调用函数。
image
  • 如果最后一个动作是调用自身,成为尾递归,是尾调用的特殊情况。
image
  • 很多编译器会对尾递归函数进行优化,空间复杂度会降低。所以可以将递归优化成尾递归
image

回溯(Back Tracking)

一、概念

  • 回溯可以理解为:通过选择不同的岔路口来通往目的地。
  • 每一步都选择一条路触发,能进则进,不能进则退回上一步(回溯),换一条路再试。
  • 树前序遍历和图的深度优先搜索(DFS)就是典型的回溯算法。
image

二、练习

面试题 08.12. 八皇后

剪枝(Pruning)

image
image
  • else中的代码就代表剪枝操作。(什么也不做)
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容