C++抽象编程——递归策略——前言

来源:互联网 发布:软件开发工作量评估 编辑:程序博客网 时间:2024/06/05 03:06

接下来总结的就是递归的核心内容——递归策略(Recursive Strategies),本来我是想接着递归简介就写这个的,但是书本上的很多例子都是利用STL实现的,正如我在STL的心得中讲的,那本书上的很多出口的方法都是它们学校自己的接口提供的,我们要自己去实现。其实我也没想到STL会包含那么多的知识点而已。那个系列确实是写了很多,也很久。但是在另外一个方面,我收获也是不少。
终于可以动手去写这个系列了,心里还是有点小激动的,很多人都说递归是算法的基础,也算是我第一次接触的算法吧。下面先进行个大致的了解:

当递归分解直接来自数学定义时,如在递归简介中的fac和fib函数的情况下,应用递归并不是特别困难,因为在大多数情况下,我们可以通过将适当的表达式插入到标准递归范例中将数学定义直接转换为递归实现。然而,当我们开始解决更复杂的问题时,情况会发生变化。
这次介绍几个是至少不会是在表面上的编程问题,比递归简介中的更难。事实上,如果我们尝试在不使用递归的情况下解决这些问题,则依赖于更熟悉的迭代技术(即循环),你会发现它们很难解决。相比之下,每个问题都有一个令人惊讶的递归解决方案。如果您利用递归的功能,每行任务就可以只使用几行代码。

这些解决方案的简洁使我们对它们有一些误解。这个时候我们要知道解决这些问题的难点与代码的长度无关。使这些程序变得困难的是首先发现递归分解(也就是我们前面介绍的recursive decomposition)。 这样做偶尔需要一些聪明才智,但是你所需要的更多是信心。 你必须接受recursive leap of faith

所以,总结一点,学习这个系列,你至少知道这些东西:
1. 递归范式
2. recursive leap of faith
3. STL的基本操作

这些我在前面的博文都有介绍的。下面的博文就来进入正题。

0 0
原创粉丝点击