Algorithme de Prim
Fermé
andyajram
Messages postés
165
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
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
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
A voir également:
- Algorithme de Prim
- Logiciel algorithme euromillion - Télécharger - Loisirs créatifs
- Algorithme application pc - Télécharger - Édition & Programmation
- Algorithme euromillion excel gratuit - Forum Algorithmes / Méthodes
- Algorithme ajout rapide snapchat - Forum Snapchat
- Ajout rapide snap - Forum Snapchat
2 réponses
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 ?
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 ?
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:
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.
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.