总结

递归,是搜索常用的一种算法。在搜素中它叫深度优先搜索(简称“深搜”)。
什么是递归呢?“递归是一种常见的编程思想,指的是在运行过程中不断地调用自身”——AI智能回答。其实就是一个函数,自己调用自己或者通过其他函数调用自己。这不就是一个死循环吗?没错,所以递归的停止条件so important。

递归的样子大概是这样:
函数类型 函数名(多用"dfs") (参数1,参数2,...)
{
if(条件)
{
......;
返回值;
}
函数内容;
调用该函数;
}
递归函数通常被用于寻找最优解或合法解的个数,其实就是用n层循环暴力枚举。递归主要分三种枚举方式:
1.子集枚举
又称01枚举,就是枚举每个量,选或不选(标记为“合法或不合法”),时间复杂度O(2^n),例题 超级书架。
2.全排列枚举
就是枚举每个位置,在每个位置上放一个合法的量,例题 全排列输出。
3.组合枚举
就是在集合中挑选固定几个量,枚举排列其他量输出,例题 组合输出。
递归函数很大的缺点就是TLE,所以优化很重要。但是,有时数据too big,那就要另寻他法了。那么说,递归在考试时是不是没有大用?NO!我们可以通过递归探索规律,从而写出高分代码。真不行,也可以用递归偷些拿些分。
总而言之,递归很重要,一定要多加练习。

posted @ 2024-12-07 10:59  星辰·秋  阅读(22)  评论(0)    收藏  举报