elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  ayuda con floyd
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: ayuda con floyd  (Leído 1,880 veces)
nolasco281


Desconectado Desconectado

Mensajes: 319


Ver Perfil
ayuda con floyd
« en: 16 Junio 2014, 05:51 am »

Hola como estan.

Estaba tratando de hacer el algoritmo de floyd y lo tengo asi

pero me parece demasiado complejo.
Talvez alquien me pueda ayudar a no usar tantos for.

Código
  1.  int a[][] =
  2.  { {0, 8, 5},
  3.    {3, 0, inf},
  4.    {inf, 2, 0}};
  5.  
  6.  main() {
  7.  
  8.    int N=a.length;
  9.  
  10.    int y, x, j;
  11.  
  12.    for (y= 0; y< N; y++)
  13.      for (x= 0; x< N; x++)
  14. if (a[x][y]>0)
  15.  for (j= 0; j< N; j++)
  16.    if (a[y][j]>0)
  17.      if ((a[x][j]== 0) || (a[x][y]+a[y][j]< a[x][j]))
  18. a[x][j]= a[x][y]+a[y][j];
  19.  
  20.    for (y= 0; y< N; y++)
  21.      {
  22. for (x= 0; x< N; x++)
  23.  cout << (a[y][x]< 10 ? "  "+a[y][x] : " "+a[y][x]);
  24.          cout << endl;
  25.      }
  26.  }
  27.  

Saludos.


En línea

Lo que se puede imaginar... se puede programar.
eferion


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: ayuda con floyd
« Respuesta #1 en: 16 Junio 2014, 10:40 am »

Si evitas ciertos intentos de "optimizar" el algoritmo puedes acortar el código:

Código
  1. for ( int i = 0; i < N; i++ )
  2. {
  3.  for ( int j = 0; j < N; j++ )
  4.  {
  5.    for ( int k = 0; k < N; k++ )
  6.    {
  7.      int coste = path[j][i] + path[i][k];
  8.      if ( path[j][k] > coste )
  9.        path[j][k] = coste;
  10.    }
  11.  }
  12. }


En línea

nolasco281


Desconectado Desconectado

Mensajes: 319


Ver Perfil
Re: ayuda con floyd
« Respuesta #2 en: 16 Junio 2014, 11:04 am »

gracias me has dado algunas ideas. para mejorar el mio

Saludos.
En línea

Lo que se puede imaginar... se puede programar.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Ayuda por davor ayuda os ruego ayuda XD (SOLUCIONADO)
Hardware
XxRekcahlExX 6 11,271 Último mensaje 24 Mayo 2010, 00:56 am
por Aprendiz-Oscuro
Inicializar matrices en Floyd
Programación General
Archivel 6 7,565 Último mensaje 11 Julio 2013, 00:55 am
por Dashiel
Camino minimo en floyd!
Programación C/C++
Dashiel 9 3,485 Último mensaje 9 Julio 2013, 18:30 pm
por Dashiel
Algoritmo de Floyd Warshall
Programación C/C++
Luisyoxd 1 3,157 Último mensaje 6 Marzo 2020, 12:42 pm
por 98Fran
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines