bonjour.
j'ai une liste composé d'elements ayant tous la forme suivante : YYY/XX
avec YYY un nombre compris entre 000 et 999
et XX represente les 2 derniers chiffres d'une année.
je recupere donc une liste venant d'une base de données, mais elle arrive brute et non rangée. Ayant besoin de l'afficher j'ai donc fait un algo recursif de tri qui doit dabord trier en fonction de XX puis en fonction de YYY.
je sais que mon algo marche mais sur des petites listes, en effet quand je prend plus d'une centaine de ces elements j'ai un probleme d'overflow. Ne sachant pas d'ou il provient je prefere etre sur que mon algo est correct.
soit YYY/XX un element et YYY+/XX+ deux elements bruts de ma liste non triée.
je recupere dabord XX dans une variable, ainsi que YYY, YYY+ et XX+
1er test : je regarde si XX est plus grand que XX+ ET si YYY est plus grand que YYY+
si cest le cas je fais une inversion entre les deux, puis je relance le tri depuis le debut
2eme test : je regarde si XX plus grand que XX+ ET si YYY est plus petit que YYY+, si cest le cas j'inverse aussi, et je relance le tri du debut
3eme test : je regarde si XX est egale à XX+ ET si YYY est plus grand que YYY+, jinverse aussi si cest le cas et je relance le tri du debut.
Si le tri n'est psa relancé c'est donc qu'aucun test n'est lancé et qu'il n'y a donc pas besoin d'inversion entre les 2 elements, je relance donc le tri avec les 2 elements suivants (YYY+/XX+ et YYY++/XX++).
je le code en java, et j'ai donc un probleme d'overflow, pour diminuer le probleme, lors des 3 tests au lieu de repartir au debut je relance le tri avec l'element precedent a YYY/XX. ca s'ameliore un peu, mais j'ai toujours le probleme. est ce que cela vient de l'algo?
Partager