单源点最短距离(Dijkstra)
来源:互联网 发布:淘宝店先做虚拟转实物 编辑:程序博客网 时间:2024/05/15 03:41
//2013/06/30<<数据结构与算法分析>>#include<iostream>#define INIT 300000//表示无穷using namespace std;void InitGraph(Graph &G,int * &distance,int *& visted,int n)//创建图中变量初始化{ int i; int j; G=new int *[n]; for(i=0;i<n;++i) G[i]=new int [n]; for(i=0;i<n;++i) for(j=0;j<n;++j) G[i][j]=INIT; for(i=0;i<n;++i) visted[i]=0; for(j=0;j<n;++j) distance[j]=INIT;} void CreateGraph(Graph &G,int n,int edge)//图的创建{ int i; int j; int k; int weight; cout<<"please enter the node and weight==>>"<<endl; for(k=0;k<edge;++k) { cin>>i>>j>>weight; G[i][j]=weight; }}int mixVertex(Graph &G,int * &distance,int *&visted,int n)//每次找源点到其他未访问的并且距离最小的点{int i,v;for(i=0;i<n;++i)//每次都是从零开始找没有访问的if(!visted[i]){v=i;break;}for(i=i+1;i<n;++i)//{if((!visted[i])&& (distance[i]<distance[v]))//初始化距离的都是INITv=i;} return v;}void disfuc(Graph &G,int* &distance,int * &visted,int n)//源点到图中各点的最短路径{ int i,v,w; for(i=0;i<n;++i) { v=mixVertex(G,distance,visted,n); visted[v]=1; for(w=0;w<n;++w)//更新作用{ if(v==0)distance[w]=G[v][w];///针对当w=0的时候,必须做出更新 if(distance[w]>distance[v]+G[v][w]) distance[w]=distance[v]+G[v][w];} }}int main(){int n=5;int edge=7;int i; int * visted; int * distance;Graph G; visted=new int[n]; distance=new int[n];InitGraph(G,distance,visted,n);CreateGraph(G,n,edge); disfuc(G,distance,visted,n);for(i=0;i<n;++i) cout<<distance[i]<<endl;}
时间复杂度0(edge^2).
- 单源点最短距离(Dijkstra)
- Dijkstra算法求解单源点到其余各顶点的最短距离
- 单源点最短路径----Dijkstra算法
- 单源点最短路径(dijkstra算法)
- Dijkstra求解单源点最短路径
- Dijkstra 邻接矩阵 单源点最短路径
- 从源点到其余各顶点的最短距离--迪杰斯特拉(Dijkstra)算法
- 单源点最短路径Dijkstra算法的JAVA实现
- 单源点最短路径Dijkstra算法的JAVA实现
- 单源点最短路径算法(dijkstra)
- 单源点最短路径问题(Dijkstra算法)
- 单源点最短路径Dijkstra的java实现
- 单源点最短路径Dijkstra和Bellmanford
- 【数据结构】算法7.15 Dijkstra算法 单源点最短路径
- 单源点最短路径的Dijkstra算法
- 最短路径(Dijkstra算法)也就是单源点问题!
- 单源点最短路径Dijkstra方法实现
- Dijkstra模板求单源点最短路径
- 阡陌路-车行天下之汽车基础知识
- 遵循Java EE标准规范的开源GIS服务平台之一:平台架构
- 关于“==”、equals()、hashCode()
- 图的深度遍历(DFS)
- delay job vs resque
- 单源点最短距离(Dijkstra)
- 用友华表任少斌:三面突围大数据存储
- eeplat中遇到日期先后校验问题的解决
- Linux:备份
- 01_ANT_helloWord
- 初学proxool
- 二 Android 开发之道(2) 开发流程
- java、jsp、html命名规范和定义
- java连mssqlserver2k