贪心算法之最短路径问题(Dijkstra算法)
生活随笔
收集整理的這篇文章主要介紹了
贪心算法之最短路径问题(Dijkstra算法)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1、問題
一個求單源最短路徑的問題。給定有向帶權圖 G =(V, E ),其中每條邊的權是非負實數。此外,給定 V 中的一個頂點,
稱為源點。現在要計算從源到所有其他各頂點的最短路徑長
度,這里路徑長度指路上各邊的權之和。
2、分析
3、代碼實現
1、普通C++實現
#include <iostream>
#include <cstdio>
#include <stack>
#include <string>using namespace std;/*
一定要記得如果初始化矩陣的話,肯定需要一個變量保存長和寬的最大值,
如果看到權重的話,肯定是需要有個變量保存最大值的權重
*///城市的節點數目的最大值
const int MAX_CITY_NUM = 100;
//節點權值的最大值
const int MAX_POLICY = 1e7;
//初始化權重矩陣
int map[MAX_CITY_NUM][MAX_CITY_NUM];
//源點到各個頂點的最短具體數組
int dist[MAX_CITY_NUM];
//下標表示當前節點值,然后值保
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎
總結
以上是生活随笔為你收集整理的贪心算法之最短路径问题(Dijkstra算法)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: C++之STL之priority_que
- 下一篇: 贪心算法之用优先队列解决最短路径问题(D