程式設計師必備十大演算法 最短路徑(1)

2021-10-10 08:42:33 字數 704 閱讀 9537

最短路徑的演算法大致可以分為三種,不過每一種的演算法都有所不同

在時間複雜度、空間複雜度、負權、有負權的邊、是否可以檢驗有沒有負權或者帶負權的邊

這個演算法比較簡單,暴力解決,時間複雜度為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就是...