Tri SQL ou Java

Résolu/Fermé
Virg62 Messages postés 12 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 5 octobre 2011 - 27 août 2008 à 11:56
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 - 3 sept. 2008 à 00:21
Bonjour,

Dans ma table sql j'ai ces colonnes :
une CodeFrais1, une LibelleFrais1, une CodeFrais2 , une LibelleFrais2, une CodeFrais3, une LibelleFrais3, une CodeFrais4 et une LibelleFrais4.

Je peux avoir par exemple ->
CodeFrais1 = 16, CodeFrais2 = 11, CodeFrais3 = 82 et CodeFrais4 = 44.
LibelleFrais1 = a, LibelleFrais2 = b, LibelleFrais3 = c et LibelleFrais4 = d.

Comment je peux faire un trie pour avoir le CodeFrais dans l'ordre alphabétique et le libellé correspondant.

En gros je voudrai avoir dans mon affichage :
11 -> b
16 -> a
44 -> d
82 -> c
Ce que j'ai pour l'instant :
16 -> a
11 -> b
82 -> c
44 -> d

Voici mon code pour récupérer ces info mais sans le tri justement ->
for (int i = 1; i <= 4; i++)
{
ligne = new Ligne();
Object codeFrais = MethodUtils.invokeMethod(Fraisbean, "getCodeFrais" + Integer.toString(i), null);
Object libFrais = MethodUtils.invokeMethod(Fraisbean, "getLibelleFrais" + Integer.toString(i), null);
if(libFrais == null)
{
libFrais = "";
}
if (codeFrais != null)
{
ligne.addColonne(codeFrais);
ligne.addColonne(libFrais);
liste.addLigne(ligne);
}
}
return liste;

Merci, Virg
A voir également:

7 réponses

Tu peux faire soit un tri bulle (un des meilleur tri) de ton tableau dont voici l'algo=>
https://interstices.info/les-algorithmes-de-tri/?id=c_6973&encart=2&size=700,600

Soit quand tu fais ta requete SQL (si tu en fait une), tu fais un order by "le nom de la colonne"
0
Virg62 Messages postés 12 Date d'inscription mercredi 25 juin 2008 Statut Membre Dernière intervention 5 octobre 2011 2
27 août 2008 à 12:17
Je ne peux pas faire d'ORDER BY puisque mes info sont sur la même ligne da ma table en SQL, c'est ça mon soucis justement. Toutes ces infos sont sur le même enregistrement. Ce qui, je pense, m'oblige a faire le tri en java...
-1
OUI le tri bubulle, je crois que j'ai été traumatisé à l'IUT par ce truc là (à l'époque je comrpenais rien)

Enfin il existe d'autres algo de Tri mais celui reste le plus stable et efficace
Si tu souhaite voir les autres tris et leur avantages, le site que j'ai donnée plus haut est bien fouttu
0
Comme c'est expliqué sur ce site=>
https://interstices.info/les-algorithmes-de-tri/

Chacun des algos ont des avantages et des inconvénients
Le tri par fusion demande des ressources plus importantes car il faut créer un deuxieme tableau de la taille du premier
Le QuickSort, il faut pas se gourrer dans le choix du pivot sinon ça revient à faire un tri de base

C'est pour ça que je préfère le tri bulle, car il consomme moins de ressource et est un peu plus long

Enfin bon, vu la taille de son problème, je pense pas qu'il recherche la meilleur optimisation possible ;-)
0
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
27 août 2008 à 12:39
Ah le tri bubulle ... :)
-1

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
arth Messages postés 9374 Date d'inscription mardi 27 septembre 2005 Statut Contributeur Dernière intervention 16 décembre 2016 1 291
27 août 2008 à 18:40
Grave le tri à l'IUT ^^ :) encore que c'était pas le plus dur.
-1
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 329
27 août 2008 à 20:10
Hello,
Si tu ne peux pas faire de tri en SQL, il faut effectivement le faire en java.
Par contre, contrairement à ce que dit Knuckles, le tri par bulle, c'est pas le top (c'est même un des pire niveau complexité en temps).
Utilise plutôt le tri fusion qui est le top du top niveau rapidité (O(n log(n)) dans le pire des cas), ou le tri rapide (quick sort), qui en moyenne est le tri le plus efficace (en moyenne il est en O(n log(n)) et plus rapide que le tri fusion).

Bien cordialement,
-1
Marco la baraque Messages postés 996 Date d'inscription vendredi 9 mai 2008 Statut Contributeur Dernière intervention 5 novembre 2009 329
3 sept. 2008 à 00:21
Salut Knuckles,
Effectivement, chaque algorithme de tri a ses propres forces et faiblesses. On t'a sensibilisé à la complexité en espace au cours de tes études, ce qui est une très bonne chose.
Selon moi (qui suis évidemment loin d'être une référence), ces notions de complexités en espace sont surtout utiles pour les systèmes embarqués, sur lesquels la gestion de la mémoire est primordiale.

En règle générale (bien que ça arrive), les langages objets ne sont pas portés sur ce genre de plateformes car la conception objet a de nombreux avantages, mais aussi un coût (notamment en mémoire). C'est pourquoi l'aspect mémoire est beaucoup moins considéré en Java qu'en C ou en assembleur par exemple.

Pour te donner un ordre de grandeur, notre ami Virg62 va trier des entiers sur son PC, équipé de Windows Vista. En Java, la taille d'un int étant de 32 bits, soit 4 octets, créer un tableau de 10000 élément va lui coûter... 39Ko. En créer deux (pour effectuer un tri fusion par exemple) va donc lui coûter 78Ko, ce qui est assez négligeable face aux 1048576 Ko qu'il dispose si on suppose qu'il possède 1Go de mémoire vive (étant équipé de Vista, c'est raisonnable de le penser).

Tout ceci pour dire non pas "la mémoire on s'en fout, on en a à l'infini", mais qu'il faut tout de même optimiser ses choix, l'optimisation ici étant peut-être de dépenser quelques octets de façon linéaire afin de gagner du temps de manière exponentielle.

Après, je conviens tout à fait qu'on peut choisir un tri plus gourmand en temps pour des questions d'optimisation (quoique j'ai du mal à digérer ton bubble sort :D, personnellement j'utiliserais un tri par insertion, en moyenne c'est carrément plus efficace que des permutations successives).
Concernant le quick sort, effectivement faut bien choisir le pivot, mais j'ai tendance à faire confiance aux développeurs de Sun qui nous ont implémenté la méthode sort pour les collections. Niveau code, ils ne sont pas des losers comme moi, donc je pense qu'ils savent comment faire ça bien.

Enfin, dernier point : pourquoi utilises-tu un compte anonyme pour poster ici? Ca pourrait être sympa de te créer un compte pour répondre aux questions intéressantes. Tu as des bonnes connaissances en informatique, ça serait super utile pour les utilisateurs d'avoir une personne compétente de plus qui répond régulièrement à leurs messages.
Ca ne te tente pas?
-1