下面程序片段主要体现的算法思想是( )。 def dfs(x, y): vis[x][y] = True for k in range(4): nx = x + dx[k] ny = y + dy[k] if inside(nx, ny) and a[nx][ny] == 1 and not vis[nx][ny]: dfs(nx, ny)
A:泛洪算法
B:贪心算法
C:二分查找
D:归并排序
正确答案:A
答案解析
函数dfs通过递归访问相邻位置,标记已访问状态,遍历条件依赖坐标合法性、值判断与未访问判定。方向数组dx、dy控制移动方向,循环尝试四个方向的扩展。每次扩展基于当前位置生成新坐标,满足条件时递归调用。该过程以深度优先方式探索连通区域,逐层深入访问可达节点,直至无法继续则回退。算法核心为递归驱动的路径探索,结合状态标记防止重复访问,适用于网格结构中的连通性分析。
试卷来源:202606 CCF-GESP编程能力等级认证Python七级真题