3个项目的地图的最佳数据结构是什么

时间:2017-08-19 12:33:58

标签: python dictionary

让我们说他有给定的值(起源,命运,距离):

A ~ B = 5
B ~ C = 10
A ~ C = 20

我想找到从A到C的最短路径(在这种情况下为A-> B,B-> C)。

存储/搜索这些值的最佳数据结构是什么?

1 个答案:

答案 0 :(得分:1)

您可以使用networkx来表示加权图,然后使用 dijkstra_path找到最短的路径。

示例:

Context con = getActivity();
Button myButton = (Button) view.findViewById(R.id.buttonSP);

myButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                //Move to Lista_Smartphone from Current fragment
                startActivity(new Intent(con, Lista_Smartphone.class));
                finish();
            }
        });

这将作为输出:

#!/usr/bin/env python import networkx as nx G=nx.Graph() G.add_edge('a','b',weight=5) G.add_edge('b','c',weight=10) G.add_edge('a','c',weight=20) print(nx.dijkstra_path(G,'a','c'))

我认为['a', 'b', 'c']算法是从一个顶点到所有其他顶点的最短路径问题的最佳方法,对于复杂度项,它是O(nlogn),其中n是数字顶点。

当然,最短路径算法只有在没有负圆的情况下才能工作(最短路径问题没有意义......)。