Accueil > Forum > > > > Pb en java
Pb en java
vendredi 10 janvier 2003 à 07:01:08 |
Pb en java

rayy
|
Je n'arrive pas à trouver comment faire un tri rapide en java sur les avl dont les noeuds et les feuilles sont des vecteurs. Pouvez-vous m'aider ?
|
|
vendredi 10 janvier 2003 à 09:01:00 |
Re : Pb en java

JHelp
|
Si tu as un critétère qui te dit si un vecteur est avant un autre, alors implémente Comparable, définit la méthode : int compareTo(Object objet) avec ce critére. compareTo doit renvoyer : -> un entier négatif si l'instance est avant l'objet -> 0 si l'instance est égale à l'objet -> un entier positif si l'instance est aprés l'objet
Ensuite, tu peux utiliser un TreeSet(java.util), ou une autre classe du package java.util, ou faire ton tri toi même.
JHelp
|
|
vendredi 10 janvier 2003 à 09:04:03 |
Re : Pb en java

rayy
|
Merci de m'avoir répondu, mais c'est faire le tri moi-meme que j'arrive pas à faire! As-tu une solution pour moi stp ?
------------------------------- Réponse au message : -------------------------------
> Si tu as un critétère qui te dit si un vecteur est avant un autre, alors implémente Comparable, définit la méthode : > int compareTo(Object objet) > avec ce critére. > compareTo doit renvoyer : > -> un entier négatif si l'instance est avant l'objet > -> 0 si l'instance est égale à l'objet > -> un entier positif si l'instance est aprés l'objet > > Ensuite, tu peux utiliser un TreeSet(java.util), ou une autre classe du package java.util, ou faire ton tri toi même. > > JHelp
|
|
vendredi 10 janvier 2003 à 15:15:49 |
Re : Pb en java

JHelp
|
Bon, c'est plutôt un pb d'algo. Donc je suppose, que tu utilises le critére que je t'ai donné. C'est à dire une classe qui implémente compareTo. Je suppose également, quau départ tes éléments ne sont pas triés. Remarque, on peut également faire une liste qui trie au fur et à mesure, mais je ne crois pas que celà soit ton sujet. Donc pour le trie rapide, tu peux faire : public void tri(Comparable[] elements) { //Si le tableau est null,on a rien à faire if(elements==null) return; //On récupére la taille du tableau int taille=elements.length; //Si la taille est inférieur à 2, on a rien à faire if(taille<2) return; //On appel le tri rapide, on va trié tout le tableau triRapide(elements,0,taille-1); }
//On trie le tableau entre les indice depart et fin inclus private void triRapide(Comparable[] elements,int depart,int fin) { //On calcul l'écart d'indice int ecart=fin-depart; //Si on a un écart <2 , rien à faire if(ecart<2) return; //Si l'écart est de deux, on inverse si nécessaire) if(ecart==2) { //Si le premier élément est avant le secon, on a rien à faire if(elements[depart].compareTo(elements[fin])<=0) return; //On inverse les éléments Comparable element=elements[depart]; elements[depart]=elements[fin]; elements[fin]=element; return; } //On prend le premier élément comme pivot Comparable pivot=elements[depart]; //On permute les éléments que tous les éléments inférieurs au pivot soit avant lui, et les supérieurs aprés lui //rang ou se trouve le pivot int rang=depart; //indice de parcourt du tableau int indice=depart+1; //on va parcourir tous les éléments do { //Si l'élément courant est avant le pivot if(elements[indice].compareTo(pivot)<=0) { //On met l'élément courant à la place du pivot elements[rang]=elements[indice]; //Le pivot sera décalé d'un rang rang++; //On met l'élément se trouvant à la nouvelle place du pivot, à la place d'où se trouvait l'élément courant elements[indice]=elements[rang]; } //on passe à l'indice suivant indice++; }while(indice<=fin); //On place le pivot au rang calculer elements[rang]=pivot; //On tri la demi partie inférieure au pivot du tableau triRapide(elements,depart,rang-1); //On tri la demi partie supérieure au pivot du tableau triRapide(elements,rang+1,fin); }
|
J'éspére que ça t'aidera JHelp
|
|
vendredi 10 janvier 2003 à 17:20:58 |
Re : Pb en java

rayy
|
Ouai, mais avec les AVL comment tu fais? Il faut regarder dans les fils gauv=che et droit et tout non ? ------------------------------- Réponse au message : ------------------------------- > Bon, c'est plutôt un pb d'algo. > Donc je suppose, que tu utilises le critére que je t'ai donné. C'est à dire une classe qui implémente compareTo. > Je suppose également, quau départ tes éléments ne sont pas triés. > Remarque, on peut également faire une liste qui trie au fur et à mesure, mais je ne crois pas que celà soit ton sujet. > Donc pour le trie rapide, tu peux faire : > > > public void tri(Comparable[] elements) > { > //Si le tableau est null,on a rien à faire > if(elements==null) > return; > //On récupére la taille du tableau > int taille=elements.length; > //Si la taille est inférieur à 2, on a rien à faire > if(taille<2) > return; > //On appel le tri rapide, on va trié tout le tableau > triRapide(elements,0,taille-1); > } > > //On trie le tableau entre les indice depart et fin inclus > private void triRapide(Comparable[] elements,int depart,int fin) > { > //On calcul l'écart d'indice > int ecart=fin-depart; > //Si on a un écart <2 , rien à faire > if(ecart<2) > return; > //Si l'écart est de deux, on inverse si nécessaire) > if(ecart==2) > { > //Si le premier élément est avant le secon, on a rien à faire > if(elements[depart].compareTo(elements[fin])<=0) > return; > //On inverse les éléments > Comparable element=elements[depart]; > elements[depart]=elements[fin]; > elements[fin]=element; > return; > } > //On prend le premier élément comme pivot > Comparable pivot=elements[depart]; > //On permute les éléments que tous les éléments inférieurs au pivot soit avant lui, et les supérieurs aprés lui > //rang ou se trouve le pivot > int rang=depart; > //indice de parcourt du tableau > int indice=depart+1; > //on va parcourir tous les éléments > do > { > //Si l'élément courant est avant le pivot > if(elements[indice].compareTo(pivot)<=0) > { > //On met l'élément courant à la place du pivot > elements[rang]=elements[indice]; > //Le pivot sera décalé d'un rang > rang++; > //On met l'élément se trouvant à la nouvelle place du pivot, à la place d'où se trouvait l'élément courant > elements[indice]=elements[rang]; > } > //on passe à l'indice suivant > indice++; > }while(indice<=fin); > //On place le pivot au rang calculer > elements[rang]=pivot; > //On tri la demi partie inférieure au pivot du tableau > triRapide(elements,depart,rang-1); > //On tri la demi partie supérieure au pivot du tableau > triRapide(elements,rang+1,fin); > } > |
> > J'éspére que ça t'aidera > > JHelp
|
|
vendredi 10 janvier 2003 à 17:46:37 |
Re : Pb en java

JHelp
|
Que sont les AVL, des arbres bianaires ou des arbres à nombre de branches quelconques. Qu'entends-tu par trié des AVL ? As tu un AVL non trié au départ et tu dois en générer un trié ? Ou te suffit-il qu'il soit trié ou fur et à mesure ? S'il s'agit d'un arbre binaire trié au fur et à mesure à équilibre, regade dans les sources, tu trouveras une des miennes qui parle de ce sujet. JHelp
|
|
vendredi 10 janvier 2003 à 17:48:18 |
Re : Pb en java

rayy
|
Il est non trié, et il faut que je le trie
------------------------------- Réponse au message : -------------------------------
> Que sont les AVL, des arbres bianaires ou des arbres à nombre de branches quelconques. > Qu'entends-tu par trié des AVL ? > As tu un AVL non trié au départ et tu dois en générer un trié ? > Ou te suffit-il qu'il soit trié ou fur et à mesure ? > S'il s'agit d'un arbre binaire trié au fur et à mesure à équilibre, regade dans les sources, tu trouveras une des miennes qui parle de ce sujet. > JHelp
|
|
samedi 11 janvier 2003 à 16:27:34 |
Re : Pb en java

JHelp
|
Mettons que ton AVL, s'appel Arbre public void tri(Arbre arbre) { //Si l'arbre est null on a rien a trier if(arbre==null) return; //Si l'arbre est vide, ou est une feuille, on a rien à trier if(arbre.estVide()||arbre.estFeuille()) return; boolean b=false; do { b=false; tri(arbre.getFilsGauche()); tri(arbre.getFilsDroit()); if(arbre.getFilsGauche()!=null) if(arbre.getValeur().compareTo(arbre.getFilsGauche())<=0) { Object o=arbre.getValeur(); arbre.setValeur(arbre.getFilsGauche().getValeur()); arbre.setValeur(o); b=true; } if(arbre.getFilsDroit()!=null) if(arbre.getValeur().compareTo(arbre.getFilsDroit())>0) { Object o=arbre.getValeur(); arbre.setValeur(arbre.getFilsDroit().getValeur()); arbre.setValeur(o); b=true; } }while(b); }
|
JHelp
|
|
Cette discussion est classée dans : java, pb
Répondre à ce message
Sujets en rapport avec ce message
pb d'Applet [ par PlumE ]
Je ne connais pas grand chose en Java, mais voici mon probleme:Je voudrais creer un chat (en applet): j'ai fait des tests de connexion au serveur IRC
pb Serveur exception [ par projet2501 ]
Code source : import java.lang.*; import java.io.*; import java.net.*; public class Serveur { InetAddress addr; ServerSocket srv
Pb introduire une applet dans un code source [ par Alandar ]
Bonjour, Je voudrais pour effectuer quelque test, pouvoir executer une applet java par l'intermédiaire d'un executable java, ce lancant par un main.J'
HELP JAVA: pas dur pour les pro... [ par yaoh ]
je suis pas trop à l'aise pour l'instant en java.J'ai un pb de variables.J'ai créé deux applications pour deux cadres différents avec Jbuilder.J'appel
pb avec java [ par sih ]
j'ai un programme qui manipule des chiffres double et je veux les afficher dans un JTextField avec seulement deux chiffres aprés la virgule.Merci
pb de librairie [ par dmaillet ]
bonjour a tousvoila, j'ai un pb avec la librairie j3d sous linuxl'erreur est :java.lang.UnsatisfieldLinkError: no J3D in java.library.pathmerci pour v
pb initialization error... [ par dmaillet ]
je viens de changer d'ordinateur, et un programme que JBUILDER compile parfaitement sous l'ancien, me fait maintenant pour toute les classes :initiali
pb de capture Java 3d [ par sabadie ]
Salut J'ai un probleme de capture d'image en Java3d.Je fais mon rendu dans un offscreen buffer ainsi que dans un canvas 3D standard. Ma scene comprend
pb pour compiler avec l'invite de commandes [ par kobee12 ]
Salut!Je debute en java. J'utilise Visual J++. Ce que je voudrais, c'est pouvoir compiler avec l'invite de commande de windows. Seulement il ne reconn
PB de lancement chat de caramail [ par cjoffrey ]
Salut scusez moi je connais rein en programmation je créé des sites en html uniquement ...bref...J'essaie de lancer depuis longtemps le chat de carama
Livres en rapport
|
Derniers Blogs
SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc [TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko
Logiciels
Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning
|