
算法模型
tankeven
电子发烧友,编程爱好者
展开
-
bfs广度优先搜索
从队列中取出首个未被访问的节点,并将其访问,并将其所有的邻居节点加入队列中。一旦访问某个节点,就将其标记为已经访问过的节点。递归方式实现BFS需要考虑调用堆栈的深度问题,在搜索深度较大的情况下会出现堆栈溢出的情况,因此较为推荐的是迭代方式。在BFS过程中,每个节点都被访问一次,并且所有节点都可以按照它们的距离(深度)从根节点分类。该算法是解决许多图论问题的基础,例如寻找节点之间的最短路径,查找图中的连通性等等。2. 为了避免一个节点被重复访问,可以添加一个visited的数组,记录每个节点的状态。原创 2024-01-23 00:45:04 · 484 阅读 · 0 评论 -
dfs深度优先搜索
1. 判断当前节点是否符合条件,如是否已经访问过、是否在矩阵范围内、是否匹配需要找的单词、是否为目标节点等。在搜索过程中,需要使用visited数组等方式来确保每个节点被访问一次,避免重复访问。需要将搜索过程中的状态变化、递归调用等步骤清楚地理解清楚,以便正确地实现算法。在DFS搜索过程中,需要选择好的邻居节点来递归进行搜索,以提高搜索效率。2. 如果当前节点符合条件,进行相应的状态变化,然后递归搜索邻居节点。3. 在递归搜索邻居节点时,需要注意防止死循环和重复访问的情况。1. 树和图的遍历。原创 2024-01-23 00:20:37 · 941 阅读 · 0 评论 -
c递归算法模型
递归算法模型的核心思想是将一个大问题通过递归的方式拆分为若干个较小的问题,并不断递归下去直到问题变得足够简单,直接求解即可。这个思想实质上也是分治思想的一种应用,将大问题分解为若干个子问题,进而得到子问题的解,最后将子问题的解整合起来得到原问题的解。3. 递归算法模型的实现过程中如果存在大量计算,则很容易产生栈溢出,因此在使用递归算法模型时需要尽量避免出现超长递归链的情况。总之,递归算法模型能够很好地解决许多问题,但是需要注意细节问题,避免程序出现异常情况,从而实现高效稳定的程序执行。原创 2024-01-22 23:37:15 · 1211 阅读 · 0 评论