下载此文档

Dijkstra算法求最短路径.doc


文档分类:IT计算机 | 页数:约9页 举报非法文档有奖
1/9
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/9 下载此文档
文档列表 文档介绍
Dijkstra算法求最短路径.docDijkstra 算法求最短路径(C#版)
行如下图的路径,(vo是中心):
5
VI
2
¥3
2
经过该算法后转化为下图
using System;
using ns;
using ;
n amespace Greedy {
class Marx
{
private int[] distance;
private int row;
private ArrayList ways = new ArrayList();
public Marx(int n,params int[] d)
{
= n;
distance = new int[row * row]; for (int i = 0; i < row * row; i++) {
[i] = d[i];
}
for (int i = 0; i < ; i++) // 到各点的路有 row-1 条
{
ArrayList w = new ArrayList(); int j = 0;
(j); (w);
}
}
//
public void Find_way()
{
ArrayList S = new ArrayList(1); ArrayList Sr = new ArrayList(1); int []Indexof_distance=new int[];
for(int i=0; i < row; i++)
{
Indexof_distance[i]=i;
}
( Indexof_distance[0] ); for (int i = 0; i < ; i++)
{
( Indexof_distance[i] );
}
(0);
有 row 个点,则从中心
存放中心点到每个点的距离
int[] D = new int[]; //
//
以上已经初始化了, S和Sr(里边放的都是点的编
号)
int Count = - 1;
while (Count>0)
{
// 假定中心点的编号是 0 的贪吃法求路径
for (int i = 0; i < row; i++)
D[i] = [i];
int min_num = (int)Sr[0]; // 距中心点的最小距离点编号
foreach (int s in Sr)
{
if (D[s] < D[min_num]) min_num = s;
}
// 以上可以排序优化 (min_num);
(min_num);
// 把 最 新 包 含 进 来 的 点 也 加 到 路 径 中
((ArrayList)ways[min_num]).Add(min_num);
//
foreach (int element in Sr)
{
int position = element * (th

Dijkstra算法求最短路径 来自淘豆网www.taodocs.com转载请标明出处.

非法内容举报中心
文档信息
  • 页数9
  • 收藏数0 收藏
  • 顶次数0
  • 上传人小辰GG1
  • 文件大小151 KB
  • 时间2021-12-06