最短路徑的演算法大致可以分為三種,不過每一種的演算法都有所不同
在時間複雜度、空間複雜度、負權、有負權的邊、是否可以檢驗有沒有負權或者帶負權的邊
這個演算法比較簡單,暴力解決,時間複雜度為pow(n,3);空間複雜度為pow(n,2);可以處理負權和帶負權邊的演算法
//最短路徑(1)
#include
using
namespace std;
intmain()
for(
int k=
1;k<=m;k++
)for
(int i=
1;i<=m;i++
)for
(int j=
1;j<=m;j++)if
(a[i]
[j]>a[i]
[k]+a[k]
[j])
a[i]
[j]=a[i]
[k]+a[k]
[j];
for(
int i=
1;i<=m;i++
)return0;
}
運算結果
看不懂 ?聯絡博主(qq3100310659)備註:c++學習(不備註就不給通過)
程式設計師必備十大演算法 貪心演算法1 找錢問題
貪心演算法比較侷限,因為在決策上存在分歧,還有待證明,但是和動態規劃的思想一樣,都是從區域性最優解到整體最優解 今天講一下貪心演算法可以解決的其中乙個問題 找錢問題 首先說說一下思路,也就是核心演算法 找錢的規則是盡可能少的紙幣數找齊,找不齊就說 找不齊 找齊就輸出找錢的方法和紙幣張數,每張紙幣的張...
大廠程式設計師必備十大基礎演算法 KMP演算法
字串匹配問題 有乙個字串 str1 010101010101010010101010101 和乙個子串 str2 0101010100 現在要判斷 str1 是否含有 str2,如果存在,就返回第一次出現的位置,如果沒有,則返回 1 如果用暴力匹配的思路,並假設現在 str1 匹配到 i 位置,子串...
程式設計師必備十大演算法3 歸併排序
十大演算法之歸併排序首先要有分治的思想 歸併排序的過程 1 建立歸併函式入口mergesort a,n a是陣列a,n為陣列長度 入口中要有乙個動態分配陣列,長度為n int malloc nsizeof int 2 建立乙個msort函式msort a,arr,0,n 1 用來做二分0和n 1就是...