迪杰斯特拉算法跑栅格图思路
时间: 2023-08-31 12:11:15 浏览: 70
基于栅格地图的Dijkstra算法路径规划
4星 · 用户满意度95%
迪杰斯特拉算法是一种用于求解单源最短路径问题的经典算法,可以应用于栅格图中。
以下是迪杰斯特拉算法在栅格图中的思路:
1. 创建一个二维数组dist,用于保存起点到每个顶点的最短路径长度。
2. 初始化dist数组,将起点的距离设为0,其他顶点的距离设为无穷大。
3. 创建一个优先队列或最小堆minHeap,用于存储待处理的顶点。
4. 将起点加入minHeap,并设置起点的距离为0。
5. 循环执行以下步骤,直到minHeap为空:
- 从minHeap中取出当前距离起点最近的顶点v。
- 遍历v的所有邻居顶点u:
- 计算从起点经过v到达u的距离new_dist。
- 如果new_dist小于dist[u],则更新dist[u]为new_dist,并将u加入minHeap。
6. 运行完毕后,dist数组中保存了起点到每个顶点的最短路径长度。
注意:在栅格图中,可以使用上下左右四个方向进行移动,每个顶点有四个邻居。在计算new_dist时,需要考虑顶点的边界情况和障碍物。
阅读全文