Solved

Dijkistra Shortest Path

Posted on 1997-07-22
3
762 Views
Last Modified: 2006-11-17
Hi guys
Does anyone has the source for Dijkistra's 'Shortest Path' algorithm?
0
Comment
Question by:kkarnez
3 Comments
 
LVL 5

Expert Comment

by:julio011597
ID: 1252504
Finding the Shortest Path in a dense graph??

I'll post it if you swear this is not a homework ;)

-julio
0
 

Author Comment

by:kkarnez
ID: 1252505
Of course...
0
 
LVL 4

Accepted Solution

by:
emmons earned 100 total points
ID: 1252506
From "design and analysis of algorithms" - Jeff Smith

/* given a set of n vertices, a source vertex v and an nx n cost array c, this algorithm returns the cost fo the cheapest path from v to every other vertex. The vertices are index from 1 to n: T[i] is true iff the vertex i is included in T */
SingleSource( n,v,c)
for( i=1 to n) {
cost[i] = c[v,i]; /* initialise cost matrix */
T[v] = false; /* T is initially empty */
}
T[v] = true; /* include source vertex in T */
newest = v; /* newest node used to update cost */
for( i = 2 to n) { /* choose the ith vertex of T and see */
leastcost = INFINITY /* if inclusion of the latest */
for( j=1 to n) { /* node in T allows cheaper access */
if( !T[j] ) { /* to any node not in T */
if( cost[newest] + c[newest,j] < cost[j]) {
cost[j] = cost[newest] + c[newest,j];
} /* endif */ /* kind of useless if i = 2 */
if( cost[j] < leastcost) { /*and keep track of */
cheapest = j; /* the vertex not in T */
leascost = cost[j]; /* with the lowest access */
} /* endif */
} /* endif *
T[cheapest] = true; /* include this vertex in T */
newest = cheapest /* and record it as the */
} /* end for */ /* newest vertex */
} /* end for */
return (cost);
0

Featured Post

NAS Cloud Backup Strategies

This article explains backup scenarios when using network storage. We review the so-called “3-2-1 strategy” and summarize the methods you can use to send NAS data to the cloud

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
How do I avoid pointer to integer casting errors in C programming? 4 226
Coverting 24 hour time to 12 hour in C++ 15 173
Super Scope, DHCP 5 78
What is sub-make ? 2 61
Summary: This tutorial covers some basics of pointer, pointer arithmetic and function pointer. What is a pointer: A pointer is a variable which holds an address. This address might be address of another variable/address of devices/address of fu…
This is a short and sweet, but (hopefully) to the point article. There seems to be some fundamental misunderstanding about the function prototype for the "main" function in C and C++, more specifically what type this function should return. I see so…
Video by: Grant
The goal of this video is to provide viewers with basic examples to understand and use while-loops in the C programming language.
The goal of this video is to provide viewers with basic examples to understand opening and reading files in the C programming language.

821 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question