Dijstra与prim
来源:互联网 发布:汉诺伊塔的非递归算法 编辑:程序博客网 时间:2024/06/02 01:53
Dijstra模板:
const int MAXSIZE=100;const int INF=1000000;//除对角线外最初都要初始化为无穷int dist[MAXSIZE];void Dijkstra(int cost[][MAXSIZE],int n,int v)//求v到各个顶点的最短路径{ int i,j,k,min,set[MAXSIZE]; memset(set,0,sizeof(set));初始化 set[v]=1; for(i=0;i<n;i++) dist[i]=cost[v][i]; for(i=0;i<n;i++) { min=INF; k=-1; for(j=0;j<n;j++) if(dist[j]<min&&set[j]!=1)/*选取不在set中且具有最小距离的顶点k*/ { min=dist[j]; k=j; } set[k]=1; for(j=0;j<n;j++) { /*修改不在s中的顶点的距离*/ if(cost[k][j]!=INF&&dist[j]>(dist[k]+cost[k][j])&&set[j]!=1) dist[j]=dist[k]+cost[k][j]; }//dist数组存的就是v到个点的最短路径 }}
prim模板:
const int MAXSIZE=100;const int INF=1000000;//对角线外最初都要初始化为无穷int lowcost[MAXSIZE];void prim(int cost[][MAXSIZE],int n,int v)//从任意点v出发生成最小树{int i,j,k,min,set[MAXSIZE];memset(lowcost,INF,sizeof(lowcost));//初始化为无穷memset(set,0,sizeof(set));set[v]=1;for(i=0;i<n;i++)dist[i]=cost[v][i];for(i=0;i<n;i++){min=INF;k=-1;for(j=0;j<n;j++)if(lowcost[j]<min&&set[j]!=1)/*选取不在lowcost中具有最小距离的顶点k*/{min=dist[j];k=j;}set[k]=1;for(j=0;j<n;j++){ if(lowcost[j]>cost[k][j]&&set[j]!=1)lowcost[j]=cost[k][j];}//lowcost数组存的就是v到各个点的最短路径权值}}
0 0
- Dijstra与prim
- 最短路径 (Dijstra)与prim的相似
- 借鉴dijstra写的prim算法
- Dijstra
- dijstra
- Dijstra
- Prim算法 Kruskal算法 Dijstra算法 Floyed算法
- Prim 与Dijkstra
- poj2485 kruskal与prim
- prim与dijksra算法比较
- Prim算法介绍与实现
- 贪婪技术与Prim算法
- prim 与 dijkstra 的比较
- prim 与 dijkstra 的区别
- Dijstra算法
- Dijstra算法
- dijstra算法
- dijstra算法
- POJ_3463_Sightseeing(最短路/次短路条数)
- iOS 获取手机通讯录
- VLC的ACtiveX插件使用方法
- 获得桌面文件Shell编程
- SQL Server故障转移集群
- Dijstra与prim
- MyBatis学习笔记(五)---mybatis 动态sql语句
- B. Secret Combination
- ListView (3) 之适配器 ArrayAdapter/SimpleAdapter/BaseAdapter
- 黑马程序员_学习笔记框架(II)及工具类
- linux yum 命令详解
- 准确获取系统顶部状态栏,顶部导航栏的高度
- 先修课刷题总结
- ie兼容模式浏览出现的问题以及解决