Algorithme de Prim

Fermé
andyajram Messages postés 155 Date d'inscription vendredi 24 mai 2013 Statut Membre Dernière intervention 8 avril 2020 - 14 juin 2013 à 00:10
KX Messages postés 16739 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 19 mai 2024 - 14 juin 2013 à 18:47
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 ca 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 :

[CODE]
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 noeud 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) {

}

}
/CODE

[CODE]
public interface WeightedGraph {

int size();

int[] neighbors(int next);

int getWeight(int next, int v);

}
/CODE

2 réponses

KX Messages postés 16739 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 19 mai 2024 3 015
14 juin 2013 à 18:47
Alors, je résume :

Tu as séché les cours et tu comprends rien au Java (même pas capable de faire un main). Là tu as un projet à rendre et bien sûr tu ne peux pas le faire toi même.
Donc tu vas chercher un code vite fait sur internet (genre ici), mais bien sûr ça ne fonctionne pas, donc te voilà ici (et ailleurs) avec le culot de prétendre que tu as toi même écrit ces classes !!

Nous ici on est là pour aider ceux qui font un minimum d'efforts, ce qui est de toute évidence loin d'être ton cas ! Penses-tu réellement que ton prof sera suffisamment dupe pour ne pas voir que cet algorithme n'est pas de ton niveau ?
2
tksteph Messages postés 204 Date d'inscription samedi 20 mars 2010 Statut Membre Dernière intervention 3 janvier 2018 25
14 juin 2013 à 00:54
Bonjour!
quand j'exécute ca ne m'affiche aucune erreur ni résultat tout reste blanc!!!

Et bien
En Java, Exécuter une application, c'est appeler la méthode main() qui joue le rôle de "procédure principale", de point d'entré et qui est incluse forcément dans l'une des classes qui composent l'application.
Dans ton cas il s'agit de la classe Prim.
Il va s'en dire que ton application se comportera suivant ce que tu auras indiqué dans ton main et dans ton cas:

public static void main(String [] args){


}

Donc RIEN : Normal que tu n'aies rien!

Commence donc par remplir le main : instancie tes classes, appelle tes méthodes,... Bref Démarres ton appli là dedans et tu auras les bon résultats.



0
andyajram Messages postés 155 Date d'inscription vendredi 24 mai 2013 Statut Membre Dernière intervention 8 avril 2020
14 juin 2013 à 12:48
mais je ne sais pas comment faire ce que tu viens de dire : Appeler la fonction dans le main :s :s
0