Dijkstra'算法-顶点作为坐标

Dijkstra' algorithm- vertex as coordinate

我通过了 Dijkstra 的最短路径算法,在练习时我遇到了一个问题,其中顶点不是 单个数字 (比如 1,2,3...等等)但它是一对更具体地给出的 (x,y)coordinates。我从来没有做过这种类型的问题,我也没有见过them.Can请你帮我看看如何处理这类问题。热烈欢迎O(V^2)

使用哈希图将坐标映射到整数顶点。现在你有一个节点作为单个数字的图形。应用 dijkstra 算法。

时间复杂度:O(V) 用于转换为整数顶点。
O(V^2) 用于 运行 dijkstra 算法。
因此 O(V^2) 总复杂度。

伪代码:

int cntr = 0; 
for(Edge e : graph){
    int from = e.from;
    int to= e.to;
    if(!map.contains(from)){
        map.put(from, cntr++);    
    }

    if(!map.contains(to)){
        map.put(to, cntr++);    
    }
}

每个顶点仍然会有一个 id(如果没有给出,你可以分配)。笛卡尔坐标只是顶点的附加属性,可用于计算相连顶点之间的距离。 (平方(delta_x^2 + delta_y^2))