在2D阵列上查找路径

本文关键字:查找 路径 阵列 2D | 更新日期: 2023-09-27 18:27:41

我有一个2D int数组,我处理过它,并从图像中得到它。每个索引可以被认为是该像素的权重。我想在两个索引之间找到一条成本最低的路径(我将把这些索引作为输入)。如果可以修改移动方向(比如只向下和向左、向上和向左或全部等等),那就太好了,否则可能是向下、向左和向右)

我如何在C#中做到这一点?

在2D阵列上查找路径

无论语言如何,我都会首先计算直接路径的成本。这将成为第一条底线。然后我会递归地搜索一条较短的路径。您可以进行一些边界检查来减少递归。

  1. 任何>=基线(或当前最佳)的路径都将终止
  2. 任何会两次命中索引的路径都将终止
  3. 任何成功的路径都会设置新的基线(或最佳)

A*算法(已经标记为:))是一个很好的选择。

例如,请参阅"如何实现A*算法?"?