If you're seeing this message, it means we're having trouble loading external resources on our website.

如果你被网页过滤器挡住,请确保域名*.kastatic.org*.kasandbox.org 没有被阻止.

主要内容

递归

你是否见过俄罗斯套娃?一开始,你只能看到一个套娃,通常是涂油漆的木头,看起来像这样:
你可以去掉第一个套娃的上面一半,里面会看到什么呢?又是一个,稍微小一点的,套娃。
你可以拿掉大套哇的下面一半,并将小套哇的上下半分开。你会看到另一个,更小的,套娃:
再一次:
可以如此类推。最后你会看到最小的一个俄罗斯套娃。只有一整个,所以打不开:
我们一开始有一个大俄罗斯套娃,然后我们看到越来越小的套娃,直到最后的一个小得无法装下另一个套娃了。
俄罗斯套娃跟演算法有什么关系?就像一个俄罗斯套娃里面有一个更小的套娃,内含一个更加小得套娃,直到一个小得无法装下另一个套娃得套娃,我们将学会如何设计一个用解决一个小一点的例子来解决同样的问题的演算法,除非这个问题小得可以直接解决。我们把这个技巧成为 递归
递归有很多很多用武之地。再次课程中,我们将学到如何用递推来算阶乘函数,来测试一个词是否是会问,来算出一个数字的次方,来画一种不规则碎片形,以及来解决古老的 Towers of Hanoi 问题。以后的课程会用递推来解决其它问题,包括排序。

本内容是 达特茅斯计算机科学 教授 Thomas CormenDevin Balkcom,与可汗学院的计算课程团队合作完成。内容获得许可 CC-BY-NC-SA

想加入讨论吗?

尚无帖子。
你会英语吗?单击此处查看更多可汗学院英文版的讨论.