milaella
-
13 juin 2013 à 23:46
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 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);
}
Twinuts
Messages postés5375Date d'inscriptiondimanche 4 mai 2003StatutModérateurDernière intervention14 juin 2023111 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 ..."