课程设计题目:迷宫问题设计实验
一、问题描述
有一个 n * m 的迷宫,给定入口和出口,求路径。
二、概要设计
1. 算法的设计
采用BFS(Breadth-first search,广度优先搜索)。
伪代码如下
1. 队列初始化
2. 入口点坐标进队并标记来过
3. 当队列不为空时循环执行下述操作:
3.1 (x, y) <-- 队头元素出队
3.2 沿顺时针试探每一个方向,记为(to_x, to_y),如果可走且没来过:
3.2.1 标记(to_x, to_y)来过
3.2.2 记录(to_x, to_y)的前驱为(x, y)
3.2.3 (to_x, to_y)进队
每个节点至多来一次,故至多进队一次,所以算法复杂度如下
时间复杂度 | 空间复杂度 |
---|---|
O ( n m ) O(nm) O(nm) | O |