美文网首页
最短路径算法(D算法)

最短路径算法(D算法)

作者: Mr_码客 | 来源:发表于2017-05-14 18:15 被阅读0次

    解决最短路径算法的D算法,是一个解决从点到点之间最短路径的问题,看下面这张图:


    var INFINITE = 65535;
    var NODE_NUMBER = 6;
    
    var weight =
        [
            [0, 7, 9, INFINITE, INFINITE, 14],
            [7, 0, 10, 15, INFINITE, INFINITE],
            [9, 10, 0, 11, INFINITE, 2],
            [INFINITE, 15, 11, INFINITE, 6, INFINITE],
            [INFINITE, INFINITE, INFINITE, 6, 0, 9],
            [14, INFINITE, 2, INFINITE, 9, 0]
        ]
    
    var dis = [0, 7, 9, INFINITE, INFINITE, 14];
    var s = [1, 0, 0, 0, 0, 0];
    
    for (i = 1; i < NODE_NUMBER; i++) {
        var minWeight = INFINITE;
        var v = 0;
        for (var j1 = 0; j1 <= NODE_NUMBER; j1++) {
            if (![s[j1]] && dis[j1] < minWeight) {
                v = j1;
                minWeight = dis[j1];
            }
        }
    
        s[v] = 1;
        for (var j2 = 0; j2 < NODE_NUMBER; j2++) {
            if (!(s[j2]) && weight[v][j2] < INFINITE) {
                if ((dis[v] + weight[v][j2] < dis[j2])) {
                    dis[j2] = dis[v] + weight[v][j2];
                }
            }
        }
    }
    
    console.log(dis);
    

    相关文章

      网友评论

          本文标题:最短路径算法(D算法)

          本文链接:https://www.haomeiwen.com/subject/vlwqxxtx.html