1. 问题
求一个图中单个源到所有点的最短距离;
2. 解析
开始的时候所有的点都各自为一个集合;从确定的源点开始归并集合;
1、 找到里此集合最近的一个点;
2、 将这个点归并进这个集合,确定源点到这个点的最短路径;
3、 重复1.2直到所有的点都在一个集合之中;
3. 设计
Int date[100],a[100],d[100][100];//存储当前在集合中的点和图
初始化a数组为无穷,a[1]为0,date为0
输入图;
For(int i=1;i<n;i++){
For(int j=1;j<=n;j++){
Int date1=无穷大,date2,date3;
if(a[j]不为无穷大){
For(int k=1;k<=n;k++){
If(a[k]为无穷大,d[j][k]<date1){
date1=d[j][k];
Date2=j;date3=k;
a[date3]=a[date2]+date1;
输出a数组;
4. 分析
复杂度O(n^3)
5. 源码
https://github.com/Bcxx/task_code/tree/master/Dijkstra