Algorithme de Prim

milaella - 13 juin 2013 à 23:46
Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 - 21 juin 2013 à 20:46
Bonjour,
j'ai un projet qui consiste a programmer l'algorithme de Prim sur Java , les deux classes que j'ai créer sont Prim et WeightGraphe , la première est dont il ya tout le code de l'algorithme et la deuxième représente la taille du graphe ! le problème que j'ai maintenant c'est quand j’exécute, ça ne m'affiche aucune erreur ni résultat tout reste blanc sans rien avoir sur la console je ne sais pas comment dégager l'erreur que j'ai dans mon programme !! voici les deux classes :
public class Prim {
   
      // L'algorithme de Prim-Jarnik de trouver MST racine s
      public static int [] prim (WeightedGraph G, int s) {
         final int [] dist = new int [G.size()];  // la plus courte distance connue à MST
         final int [] pred = new int [G.size()];  // précédant nœud dans l'arbre
         final boolean [] visited = new boolean [G.size()]; // tout faux départ
   
         for (int i=0; i<dist.length; i++) {
           dist[i] = Integer.MAX_VALUE;
        }
        dist[s] = 0;
  
        for (int i=0; i<dist.length; i++) {
           final int next = minVertex (dist, visited);
           visited[next] = true;
  
           // Le bord de pred [suite] à côté est en MST (if next!=s)
  
           final int [] n = G.neighbors (next);
           for (int j=0; j<n.length; j++) {
              final int v = n[j];
              final int d = G.getWeight(next,v);
              if (dist[v] > d) {
                 dist[v] = d;
                 pred[v] = next;
              }
           }
        }
        return pred;  // (ignorer pred [s] == 0!)
     }
  
     private static int minVertex (int [] dist, boolean [] v) {
        int x = Integer.MAX_VALUE;
        int y = -1;   // graphe n'est pas connecté ou les sommets ne sont pas visités
        for (int i=0; i<dist.length; i++) {
           if (!v[i] && dist[i]<x) {y=i; x=dist[i];}
       }
        return y;
     }
  
public static void main(String[] args) {

}

}



public interface WeightedGraph {

int size();

int[] neighbors(int next);

int getWeight(int next, int v);

}


Merci de m'aider si c'est possible

1 réponse

Twinuts Messages postés 5375 Date d'inscription dimanche 4 mai 2003 Statut Modérateur Dernière intervention 14 juin 2023 111
21 juin 2013 à 20:46
Salut,

Je n'ai que survolé le code mais :
1 - Ton main est vide donc rien ne sera exécuté.
2 - Ton code ne contient aucun print sur la console donc pas étonnant que rien ne s'affiche dans la console.


-----

"On n'est pas au resto : ici on ne fait pas dans les plats tout cuits ..."

OoWORAoO
0
Rejoignez-nous