Cyberboy2054
Messages postés173Date d'inscriptionjeudi 20 décembre 2001StatutMembreDernière intervention22 août 2008
-
21 mai 2005 à 09:41
rrk275
Messages postés540Date d'inscriptionvendredi 25 juin 2004StatutMembreDernière intervention 1 octobre 2007
-
4 juin 2006 à 22:55
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
rrk275
Messages postés540Date d'inscriptionvendredi 25 juin 2004StatutMembreDernière intervention 1 octobre 20072 4 juin 2006 à 22:55
je sais, mais c'est dans le meme esprit ... ca reste du n^2 mais c'est deja mieu...
quand au tri en n log n on peut citer tri par tas, tri fusion...
Pamaury
Messages postés341Date d'inscriptionjeudi 3 avril 2003StatutMembreDernière intervention17 juin 20083 4 juin 2006 à 22:41
Le tri bulle est probablement le pire algorithme de tri après celui-ci ;)
rrk275
Messages postés540Date d'inscriptionvendredi 25 juin 2004StatutMembreDernière intervention 1 octobre 20072 4 juin 2006 à 19:16
euh il existe un tri dans le meme genre mais un deja plus rapide, le tri bulle :
on parcour tous le tableau et si x[i+1]>x[i] on swap x[i] & x[i+1]... on parcour le tableau
autant de fois que l'on fait des changements. ( un petit test avec un while )
dans le pire des cas cela fait autant d'iterations que le tien..
Pamaury
Messages postés341Date d'inscriptionjeudi 3 avril 2003StatutMembreDernière intervention17 juin 20083 21 mai 2005 à 09:42
bon alors quelques commentaires:
->indente mieux la source(encore que c'est peut-être pas ta faute)
->main() on met int main(int argc,char **argv) normalement
->conio c'est pas portable
de plus ton algorithme n'est pas très performat puisque tu parcours la liste
N fois puis N-1 fois puis N-2 fois.... sur une liste très grande il sera très(trop) lent . Regarde sur le net il existe de bien meilleur algo comme le quick sort, le tri par tas, le tri fusion .
Cyberboy2054
Messages postés173Date d'inscriptionjeudi 20 décembre 2001StatutMembreDernière intervention22 août 2008 21 mai 2005 à 09:41
Tu aurais du écrire une fonction, qui prend en paramètre un tableau a trier, et une fonction qui indique le type de tri a realiser, un peu comme la fonction qsort de stdlib.h (fais une recherche sur google), ce qui permet de pouvoir tri le meme tableau de facons différentes avec la même fonction.
Ensuite du point de vue de l'algorithme, ton tri fonctionne mais seulement sur un faible nombre de valeurs. Essaye de remplir un tableau de 100000 entiers puis de le trier, et tu vas comprendre ce que je veux dire :) (j'avais mis 5 minutes avec un tri a bulle il y a quelque temps). Donc, a toi ensuite d'utiliser des algorithmes plus adapté suivant ce que tu dois faire.
4 juin 2006 à 22:55
quand au tri en n log n on peut citer tri par tas, tri fusion...
4 juin 2006 à 22:41
4 juin 2006 à 19:16
on parcour tous le tableau et si x[i+1]>x[i] on swap x[i] & x[i+1]... on parcour le tableau
autant de fois que l'on fait des changements. ( un petit test avec un while )
dans le pire des cas cela fait autant d'iterations que le tien..
21 mai 2005 à 09:42
->indente mieux la source(encore que c'est peut-être pas ta faute)
->main() on met int main(int argc,char **argv) normalement
->conio c'est pas portable
de plus ton algorithme n'est pas très performat puisque tu parcours la liste
N fois puis N-1 fois puis N-2 fois.... sur une liste très grande il sera très(trop) lent . Regarde sur le net il existe de bien meilleur algo comme le quick sort, le tri par tas, le tri fusion .
21 mai 2005 à 09:41
Ensuite du point de vue de l'algorithme, ton tri fonctionne mais seulement sur un faible nombre de valeurs. Essaye de remplir un tableau de 100000 entiers puis de le trier, et tu vas comprendre ce que je veux dire :) (j'avais mis 5 minutes avec un tri a bulle il y a quelque temps). Donc, a toi ensuite d'utiliser des algorithmes plus adapté suivant ce que tu dois faire.