资源简介
程序采用迪杰特拉斯(Dijkstra)算法求解带权值的有向图中从某个起始节点到其它节点的最短路径。
开发环境:vs2013,.NET4.0
代码片段和文件信息
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace 最短路径Dijkstra
{
class DijkstraSolution
{
/*
* 求解各节点最短路径,获取path,和cost数组,
* path[i]表示vi节点的前继节点索引,一直追溯到起点。
* cost[i]表示vi节点的花费
*/
public static void FindShortestPath(int[] graphint startIndex int[] path int[] costint max)
{
int nodeCount = graph.GetLength(0);
bool[] v = new bool[nodeCount];
//初始化 path,cost,V
for (int i = 0; i {
if (i == startIndex)//如果是出发点
{
v[i] = true;//
}
else
{
cost[i] = graph[startIndexi ];
if (cost[i] < max) path[i] = startIndex;
else path[i] = -1;
v[i] = false;
}
}
//
for(int i=1;i {
int minCost = max ;
int curNode=-1;
for (int w = 0; w < nodeCount; w++)
{
if (!v[w])//未在V集合中
{
if(cost[w] {
minCost = cost[w];
curNode = w;
}
}
}//for 获取最小权值的节点
if (curNode == -1) break;//剩下都是不可通行的节点,跳出循环
v[curNode] = true;
for (int w = 0; w < nodeCount; w++)
{
if (!v[w] && (graph[curNode w] + cost[curNode] < cost[w]))
{
cost[w] = graph[curNode w] + cost[curNode];//更新权值
path[w] = curNode;//更新路径
}
}//for 更新其他节点的权值(距离)和路径
}//
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 18668 2016-10-18 15:46 最短路径Dijkstra\最短路径Dijkstra\bin\Debug\0.png
文件 25088 2016-10-18 17:17 最短路径Dijkstra\最短路径Dijkstra\bin\Debug\最短路径Dijkstra.exe
文件 28160 2016-10-18 17:17 最短路径Dijkstra\最短路径Dijkstra\bin\Debug\最短路径Dijkstra.pdb
文件 24216 2016-10-18 17:22 最短路径Dijkstra\最短路径Dijkstra\bin\Debug\最短路径Dijkstra.vshost.exe
文件 490 2015-07-10 19:01 最短路径Dijkstra\最短路径Dijkstra\bin\Debug\最短路径Dijkstra.vshost.exe.manifest
文件 2049 2016-10-18 17:17 最短路径Dijkstra\最短路径Dijkstra\DijkstraSolution.cs
文件 1644 2016-10-18 17:17 最短路径Dijkstra\最短路径Dijkstra\Form1.cs
文件 5524 2016-10-18 16:53 最短路径Dijkstra\最短路径Dijkstra\Form1.Designer.cs
文件 6909 2016-10-18 16:53 最短路径Dijkstra\最短路径Dijkstra\Form1.resx
文件 865 2016-10-18 15:45 最短路径Dijkstra\最短路径Dijkstra\obj\Debug\DesignTimeResolveAssemblyReferences.cache
文件 6959 2016-10-18 16:01 最短路径Dijkstra\最短路径Dijkstra\obj\Debug\DesignTimeResolveAssemblyReferencesInput.cache
文件 4608 2016-10-18 15:47 最短路径Dijkstra\最短路径Dijkstra\obj\Debug\TempPE\Properties.Resources.Designer.cs.dll
文件 890 2016-10-18 17:22 最短路径Dijkstra\最短路径Dijkstra\obj\Debug\最短路径Dijkstra.csproj.FileListAbsolute.txt
文件 1012 2016-10-18 16:53 最短路径Dijkstra\最短路径Dijkstra\obj\Debug\最短路径Dijkstra.csproj.GenerateResource.Cache
文件 2211 2016-10-18 16:53 最短路径Dijkstra\最短路径Dijkstra\obj\Debug\最短路径Dijkstra.csprojResolveAssemblyReference.cache
文件 25088 2016-10-18 17:17 最短路径Dijkstra\最短路径Dijkstra\obj\Debug\最短路径Dijkstra.exe
文件 180 2016-10-18 16:53 最短路径Dijkstra\最短路径Dijkstra\obj\Debug\最短路径Dijkstra.Form1.resources
文件 28160 2016-10-18 17:17 最短路径Dijkstra\最短路径Dijkstra\obj\Debug\最短路径Dijkstra.pdb
文件 13453 2016-10-18 16:53 最短路径Dijkstra\最短路径Dijkstra\obj\Debug\最短路径Dijkstra.Properties.Resources.resources
文件 501 2016-10-18 15:45 最短路径Dijkstra\最短路径Dijkstra\Program.cs
文件 1364 2016-10-18 15:45 最短路径Dijkstra\最短路径Dijkstra\Properties\AssemblyInfo.cs
文件 3241 2016-10-18 15:47 最短路径Dijkstra\最短路径Dijkstra\Properties\Resources.Designer.cs
文件 6189 2016-10-18 15:47 最短路径Dijkstra\最短路径Dijkstra\Properties\Resources.resx
文件 1107 2016-10-18 15:45 最短路径Dijkstra\最短路径Dijkstra\Properties\Settings.Designer.cs
文件 249 2016-10-18 15:45 最短路径Dijkstra\最短路径Dijkstra\Properties\Settings.settings
文件 3909 2016-10-18 16:53 最短路径Dijkstra\最短路径Dijkstra\最短路径Dijkstra.csproj
文件 1029 2016-10-18 15:45 最短路径Dijkstra\最短路径Dijkstra.sln
..A..H. 11776 2016-10-18 15:45 最短路径Dijkstra\最短路径Dijkstra.v12.suo
目录 0 2016-10-18 17:28 最短路径Dijkstra\最短路径Dijkstra\obj\Debug\TempPE
目录 0 2016-10-18 17:28 最短路径Dijkstra\最短路径Dijkstra\bin\Debug
............此处省略9个文件信息
- 上一篇:基于Udp的五子棋对战游戏
- 下一篇:pads常用元件库
相关资源
- DSST算法入门介绍
- EM算法原理及实现EM算法原理及实现
- ncut图像分割算法
- HMAC-MD5算法 keil C实现代码
- 基于fpga的ecc算法实现
- 遗传算法的车间调度算法求解的PPT
- 本科毕设—基于DES算法的数据加密系
- 物流配送遗传算法
- 用FCM算法实现图像分割(图像源可以
- 基于蚁群算法的无人机三维路径规划
- 迭代注水算法
- 基于改进离散粒子群算法的电力系统
- 一个基于邻域粗糙集的前向贪心的属
- MD5_加密算法程序_C51验证可以用
- 数字式自适应均衡器基于卡尔曼算法
- lyapunov算法程序
- 银行家算法linux下实现
- NLP分词算法,源码
- 一种隐含并行的大规模三相不平衡配
- Berlekamp-Massey算法
- AP聚类算法代码
- 队列实现火车厢重排的算法及代码个
- VRP问题蚁群算法
- 基于栅格化的A*路径算法规划基于Si
- 信号与数据处理中的低秩模型——理
- 自己整理的国标SM3哈希算法
- Caley树算法 计算机图形学 孔令德 案例
- 多边形边缘填充算法 计算机图形学
- 几种常用music算法
- 严题集算法设计答案汇总
评论
共有 条评论