Principales respuestas
Algoritmo de Prim copiado, desarrollado en C# que no me corre bien y no puedo encontar la razon.

Pregunta
-
Hola Mucho agradeceria que alguien me ayudara en encontrar cual es el problema por el cual el algoritmo de Prim adjunto no corre bien: Si el problema, es porque de mi parte no entiendo como en el algoritmo se cargan los otros datos necesarios descartando la matriz de Adayacencia, o que el programa copiado del sitio www.GeeksforGeeks.com tiene algun problema que no puedo encontrar.
Gracias nuevamente por su tiempo. Luis E. Guzman.
A continuacion le copio solamente el program otras partes de detallada descripcion de como trabaja sobre un grafo el algoritmo lamentablemente no lo puedo cargar porque todo el material ocupa mucho espacio y no cabe en esta pagina....
How to implement the above algorithm?
We use a boolean array mstSet[] to represent the set of vertices included in MST. If a value mstSet[v] is true, then vertex v is included in MST, otherwise not. Array key[] is used to store key values of all vertices. Another array parent[] to store indexes of parent nodes in MST. The parent array is the output array which is used to show the constructed MST.using
System;
class
MST {
// Number of vertices in the graph
static
int
V = 5;
static
int
minKey(
int
[]key,
bool
[]mstSet)
{
int
min =
int
.MaxValue, min_index = -1;
for
(
int
v = 0; v < V; v++)
if
(mstSet[v] ==
false
&& key[v] < min)
{
min = key[v];
min_index = v;
}
return
min_index;
}
static
void
printMST(
int
[]parent,
int
n,
int
[,]graph)
{
Console.WriteLine(
"Edge \tWeight"
);
for
(
int
i = 1; i < V; i++)
Console.WriteLine(parent[i]+
" - "
+ i+
"\t"
+
graph[i,parent[i]]);
}
static
void
primMST(
int
[,]graph)
{
int
[]parent =
new
int
[V];
int
[]key =
new
int
[V];
bool
[]mstSet =
new
bool
[V];
// Initialize all keys
// as INFINITE
for
(
int
i = 0; i < V; i++)
{
key[i] =
int
.MaxValue;
mstSet[i] =
false
;
}
key[0] = 0;
parent[0] = -1;
// The MST will have V vertices
for
(
int
count = 0; count < V - 1; count++)
{
int
u = minKey(key, mstSet);
mstSet[u] =
true
;
for
(
int
v = 0; v < V; v++)
if
(graph[u,v] != 0 && mstSet[v] ==
false
&&
graph[u,v] < key[v])
{
parent[v] = u;
key[v] = graph[u,v];
}
}
// print the constructed MST
printMST(parent, V, graph);
}
<button id="copyCodeBtn">Copy Code</button><button class="runIdeBtn">Run on IDE</button>
leg2014
- Editado leg2014 viernes, 23 de noviembre de 2018 18:01
Respuestas
-
Hola leg2014
Dando seguimiento a tu pregunta, te comparto algunos procedimientos que puedes intentar.https://docs.microsoft.com/es-es/dotnet/api/system.array.copy?view=netframework-4.7.2
Espero que te sean de utilidad.
Gracias por usar los foros de MSDN.
Pablo Rubio
____
Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.
Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.
Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.
- Marcado como respuesta leg2014 jueves, 22 de noviembre de 2018 17:39
-
Gracias por sus Atencion Sr. rubio.
Revisare el sitio recomendado en la esperaza de que alguien me "ilumine".. y pueda ver el o los detalles que me dificultan que el algoritmo corra bien.
Deseandole lo mejor. Pase buen Dia.
Luis E. Guzman
leg2014
- Marcado como respuesta leg2014 jueves, 22 de noviembre de 2018 17:44
Todas las respuestas
-
Hola leg2014
Dando seguimiento a tu pregunta, te comparto algunos procedimientos que puedes intentar.https://docs.microsoft.com/es-es/dotnet/api/system.array.copy?view=netframework-4.7.2
Espero que te sean de utilidad.
Gracias por usar los foros de MSDN.
Pablo Rubio
____
Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.
Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.
Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.
- Marcado como respuesta leg2014 jueves, 22 de noviembre de 2018 17:39
-
Gracias por sus Atencion Sr. rubio.
Revisare el sitio recomendado en la esperaza de que alguien me "ilumine".. y pueda ver el o los detalles que me dificultan que el algoritmo corra bien.
Deseandole lo mejor. Pase buen Dia.
Luis E. Guzman
leg2014
- Marcado como respuesta leg2014 jueves, 22 de noviembre de 2018 17:44