发现重写DFS的复杂性

时间:2018-12-30 06:29:51

标签: time-complexity pseudocode

对于以下问题:

  

在给定N个站点,源站点,目标站点的情况下,数据结构表示每2个站点之间的所有可能路径(路径是无向的)以及从一个站点到另一站点的每个路径的长度–查找从源站点到最长路径目的地站

我写了下面的伪代码:

Vertex
    String key
    boolean visited
    LinkedList<Edge>nextEdges


Edge
    Vertext nextVertex
    int length

    tempSum=0
    stack
    maxSum=0
    maxPath
    maxPathByDFS(src,dst)

1        stack.push(src)
2        src.visited=true
3        if (!src.nextEdges.isEmpty)
4            for (currEdge∶src.nextEdges)

5                if (currEdge.nextVertex==dst)
6                    tempSum+=currEdge.lenght
7                    stack.push(dst)
8                    if(tempSum>maxSum)
9                        maxSum=tempSum
10                        stack.toArray(maxPath)
11                    stack.pop
12                    tempSum-=currEdge.lenght
13                else if (!currEdge.nextVertex.visited)
14                    tempSum+=currEdge.lenght
15                    maxPathByDFS(currEdge.nextVertex,dst)
16                    tempSum-=currEdge.lenght
17        stack.pop
18        src.visited=false
19        return

能否请您帮我找到解决方案的运行时复杂性?

0 个答案:

没有答案