哈希映射中的最短路径

时间:2009-04-23 07:07:39

标签: hash map graph-theory

以下是我存储在哈希映射中的数据集,我必须找到两个值之间的最短路径。

9244, 4322, 4886, 5989, 8598, 9979, 1447, 9657
8598, 6752, 7146, 1951, 660, 1447, 7779
568, 1951, 4886, 2570, 9026, 9489, 7779
6752, 3424, 1977, 4746, 9657
77

哈希映射的键值是每行的第一个值,其余的是9244的假设“朋友”(在每种情况下都相同)。

我以这种格式保存在哈希表中:hashmap(key, array),其中:

  • 密钥是例如9244
  • 数组然后成立[4322,4886,5989,8598,9979,1447,9657]

如何找到两个键之间的最短路径?

2 个答案:

答案 0 :(得分:1)

如果我正确地解释了您的问题,那么您正在谈论Shortest Path problemdirected graph

  • 从一个整数开始,获取它映射到的整数数组。
  • 每个整数都是新数组的关键。
  • 按照这些路径找到最短路径。

如果您进行谷歌搜索,并查看维基百科页面,您将能够找到大量可以帮助您的代码示例和算法。

正如Peter Smit所说,A*算法是这个问题的常见算法。其他包括Dijkstra'sBellman-Ford

答案 1 :(得分:0)

您可以实施A*算法。您可以先构建一个图形,然后按照维基百科页面上的伪代码进行操作。