Algorithm:C++语言实现之图论算法相关(图搜索广度优先BFS、深度优先DFS,最短路径SPF、带负权的最短路径Bellman-ford、拓扑排序)
生活随笔
收集整理的這篇文章主要介紹了
Algorithm:C++语言实现之图论算法相关(图搜索广度优先BFS、深度优先DFS,最短路径SPF、带负权的最短路径Bellman-ford、拓扑排序)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Algorithm:C++語言實現之圖論算法相關(圖搜索廣度優先BFS、深度優先DFS,最短路徑SPF、帶負權的最短路徑Bellman-ford、拓撲排序)
?
?
目錄
一、圖的搜索
1、BFS (Breadth-First-Search) 廣(寬)度優先
2、DFS (Depth-First-Search) 深度優先
二、三大算法
1.1、最短路徑SPF:Shortest Path First(Dijkstra)
1.2、帶負權的最短路徑:Bellman-ford算法
3、拓撲排序
?
?
?
一、圖的搜索
1、BFS (Breadth-First-Search) 廣(寬)度優先
1.1、單詞變換問題Word ladder
1.2、周圍區域問題
2、DFS (Depth-First-Search) 深度優先
2.1、回文劃分問題
2.1.1、Palindrome Partitioning思考:動態規劃
?
2.2、八皇后問題
有個//要取消掉
2.3、數獨Sudoku問題
2.4、非遞歸數獨Sudoku
3、Tarjan算法
二、三大算法
1.1、最短路徑SPF:Shortest Path First(Dijkstra)
生成最短路徑的貪心算法 procedure SHORTEST-PATHS(v,COST,DIST,n) //G是一個n結點有向圖,它由其成本鄰接矩陣COST(n,n)表示。DIST(j)被置從結點v到結點j的最短路徑長度,這里1≤j≤n。特殊的,DIST(v)被置成零//boolean S(1:n);real COST(1:n,1:n),DIST(1:n)integer u,v,n,num,i,wfor i←1 to n do //將集合S初始化為空//S(i) ←0;DIST(i) ←COST(v,i) //若v到i沒有邊,DIST(i)=∞//repeatS(v) ←1;DIST(v) ←0 //結點v計入S//for num←2 to n-1 do //確定由結點v出發的n-1條路//選取結點u,它使得DIST(u)=S(u) ←1 //結點u計入S//for 所有S(w)=0的結點w do //修改DIST(w)//DIST(w) = min(DIST(w), DIST(u) + COST(u,w))repeatrepeat end SHORTEST-PATHS1.2、帶負權的最短路徑:Bellman-ford算法
2、Floyd算法
?
3、拓撲排序
?
?
?
總結
以上是生活随笔為你收集整理的Algorithm:C++语言实现之图论算法相关(图搜索广度优先BFS、深度优先DFS,最短路径SPF、带负权的最短路径Bellman-ford、拓扑排序)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Algorithm:C++语言实现之内排
- 下一篇: Algorithm:C++语言实现之贪心