tri

tri - Java - Programmation

Marsh Posté le 05-01-2005 à 15:01:01    

Salut tout le monde,
 
On me demande de faire un test de rapidité de tri sur un tableau de dimension [10][1000].  
 
Quelle serait selon vous la meilleure manière de faire : tableau, Vector (euh non pas vector), arrayList, RecordSet (les données viendront d'un base), que sais-je encore ?
 
A noter que le tri devra pouvoir se faire aussi bien sur un ordre alphabétique que sur des montants ou des dates.
 
Merci
 
esrevni

Reply

Marsh Posté le 05-01-2005 à 15:01:01   

Reply

Marsh Posté le 05-01-2005 à 15:05:00    

Essaye chacune de ces méthodes et dis-nous quoi ? [:djswad]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 05-01-2005 à 15:45:55    

disons qu'avant de commencer à développer, j'aurais aimé un conseil d'une personne ayant déjà eu à faire ce genre de manip.
 
tu vois quoi !

Reply

Marsh Posté le 05-01-2005 à 15:53:01    

Je vois. [:djswad]
 
De toute façon, tu ne parles pas d'écrire ou d'optimiser une méthode particulière de tri. J'en déduis que tu vas utiliser une méthode donnée qq soit la structure de données. Par ex. un sort de collection tel que fourni en Java.
 
Dans ce cas, vu la petitesse de ton tableau, je ne pense pas qu'il faille t'exiter des masses sur les perfs.
 
Opte pour le plus simple pour commencer, genre Collections.sort() [:djswad].
 
EDIT : Ce n'est qu'une première suggestion, consultation gratuite, à affiner si besoin.


Message édité par sircam le 05-01-2005 à 15:53:53

---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 05-01-2005 à 15:56:24    

oki merci, j'vais regarder ça :)

Reply

Marsh Posté le 05-01-2005 à 16:16:20    

un trie en utilisant un tableau sera généralement plus rapide qu'avec une collection.
 
y a aussi un java.util.Arrays.sort() je crois ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 05-01-2005 à 16:23:10    

Faut voir quel type de collection. Si elle est array based, ça devrait être kif-kif (?)
 
Et faudrait encore que l'impact soit significatif, ce qui n'est pas évident pour une "petite" quantité de données.


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 05-01-2005 à 16:44:10    

sircam a écrit :

Faut voir quel type de collection. Si elle est array based, ça devrait être kif-kif (?)


ben t'as les appels de méthode en moins [:spamafote]
ca va pas chercher loin, mais si c'est les perfs qu'on cherche ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 07-01-2005 à 15:59:48    

Effectivement, les perfs sur mon pôvre poste de programmeur sont excellentes (l'affichage dans la console doit prendre plus de temps que le tri en lui-même).  
 
Maintenant commment savoir comment le serveur de prod va réagir quand on lui demandera 100 requêtes par seconde ?
 
euh, c'est pas vraiment une question, j'vais me demmerder tout seul pour la suite.
 
Merci à tous pour le coup de main ;)

Reply

Marsh Posté le 07-01-2005 à 16:28:01    

benou a écrit :

ben t'as les appels de méthode en moins [:spamafote]
ca va pas chercher loin, mais si c'est les perfs qu'on cherche ...


les appels de méthodes, ça se voit pas en java. La JVM inline tout ce qu'elle veut.

Reply

Marsh Posté le 07-01-2005 à 16:28:01   

Reply

Marsh Posté le 07-01-2005 à 19:06:08    

nraynaud a écrit :

les appels de méthodes, ça se voit pas en java. La JVM inline tout ce qu'elle veut.


ca me surprend ... je me rappel avoir lu des docs pas si anciennes (comprendre post jdk1.4) de mecs de sun qui parlait des perfs. Ils disaient que la méthode de tri la plus efficiace, quand t'avais une collection longue à trier c'était d'en extraire un tableau, de trier le tableau et d'en refaire une collection.
 
je suis loin d'être pour ce genre d'optimisation à la con, mais ca veut quand même dire que l'appel de méthode a un coût...
 
me demande pas d'url, je me souviens plus où j'ai lu ca ... mais ca se vérifie assez facilement si tu veut faire le test ...


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 08-01-2005 à 01:17:42    

benou> le penche plutôt pour la localité spaciale. ou alors une liste trop courte pour amortir le coût de profiling+optimisation+compilation

Reply

Marsh Posté le 08-01-2005 à 12:19:40    

En parlant de tri, j'ai été surpris comme Java (Arrays.sort()) tri carrément plus vite un tableau d'int que C (methode qsort ou meme gqsort de la glib) qui a pourtant le meme tri d'implementer (quicksort)
 
Un autre truc, pourquoi Java a implementer le merge sort pour trier des Object ? j'ai vu un link qui disait parce que c t un tri stable : chaque element egaux ne sont pas deplacé je crois...c'est a dire...

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed