圖論之最短路算法

Floyd

#include <cstdio>
待補(bǔ)坑

Dijkstra

樸素o(n^2)

int n, m;// 點(diǎn)數(shù)量以及邊數(shù)量
int w[MAXN][MAXN];// 記錄任意兩點(diǎn)之間距離
int d[MAXN];// 點(diǎn)的權(quán)值
int v[MAXN];// 標(biāo)記數(shù)組
void Dijkstra() {
    // 初始化所有點(diǎn)權(quán)為INF
    for(int i=2; i<=n; i++) d[i] = INF;

    for(int i=1; i<=n; i++) {
        int x, m = INF;
        // 選出相連的d值最小的點(diǎn)
        for(int y=1; y<=n; y++) if(!v[y] && d[y]<=m) m = d[x=y];
        // 標(biāo)記此點(diǎn)為已訪問(wèn)
        v[x] = true;
        // 更新最小d值
        for(int y=1; y<=n; y++) {d[y] = min(d[y], d[x] + w[x][y]);}

    }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容