这节课是整个青少年Python编程系列讲解的最后一节课了。前面一节课我们讲了排序算法和查找算法,这节课我们了解一下递推算法和分治算法,以及算法复杂度的概念。算法还有很多,比如分型算法、聚类算法、预测算法、调度算法、路径算法等等,我们就不再展开讲了,大家有兴趣的可以自己进行研究,算法部分的内容为这里是给大家开一个头。下面正式开始这一讲的内容吧。
一、递推算法
递推是序列计算中的一种常用算法。它是按照一定的规律来计算序列中的每一项,通常是通过前面一些项的得到序列中指定项的值。
我们举一个例子:
有一组小朋友,第1位小朋友说自己比第2位小朋友多2块糖,第2位小朋友说自己比第3位小朋友多2块糖,第3位小朋友说自己比第4位小朋友多2块糖……最后问到第6位小朋友的时候,他说自己有3块糖。请问第1位小朋友有几块糖?
我们假设第1个位小朋友有块糖,想要知道是多少,需要从第6位小朋友的糖的个数着手。根据多2块糖这个规律,我们可以按顺序逐步推算: