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
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
Comparez les prix

HTC Hero
Entre 550€ et 550€
|