其次是时间复杂度为O(n^2)的单源最短路径算法Dijkstra(可以优化为O(nlogn))时间复杂度
详细算法过程请参阅https://www.cnblogs.com/smile233/p/8303673.html
#include<iostream>
//#include<climits>//INT_MAX所需头文件
#include<utility>
#include<string>
#include<windows.h>
#define inf 0x7fffffff
using namespace std;
void Dijkstra(int v0);
int n, m;
int weight[2000][2000],dist[2000];
int visit[2000];
string path[2000];
int main()
{
cout << "please input n and m:";
cin >> n >> m;
for (int i = 1; i <= n;++i)
for (int j = 1; j <= n; ++j)
weight[i][j] = inf;
cout << "please input node v0:";
int v0;
cin >> v0;
Dijkstra(v0);
for (int k = 1; k <= n; k++)
{
if (k != v0)
cout << path[k] << endl;
}
system("pause");
return 0;
}
void Dijkstra(int v0)
{
for (int i = 1; i <= n; ++i)
if(i!=v0) path[i] = to_string(v0