|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() |
Bonjour à tous, la méthode de tri shell est très difficile pour moi. J'ai lu des cours très compliqués sur le net, SVP SVP SVP je suis intéressé par cette méthode. Aidez-moi à la comprendre, le probléme pour moi n'est pas seulement ça, mais aussi de traiter ce shell en récursivité {c'est un devoir à la maison}.
S'il vous plaît les gars aidez-moi plus rapidement. |
|
|
00
|
|
|
#2 | ||
|
Invité régulier
![]() |
Voici l'algo en TPW1.5 :
Code :
|
||
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 1 ![]() |
Code :
|
||
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() |
Salut tout le monde,
dans la boucle pour il y a une condition très importante que "ningistine" ne précise pas : c'est de commencer le balayage du compteur (i) à (p+1) et pas (p) parce que, après la différence de (j-p), on pointe vers la position zéro. Pour optimiser cet algorithme, il faut mettre la boucle pour de cette façon, plus (" for i:=p+1 to n do ") pour commencer à la case n° p+1 et pas (p). Je crois que c'est plus optimiste comme ça. |
|
|
00
|
|
|
#5 | |||||
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 4 ![]() |
Remarque :
Le tri shell trie chaque liste d'élements séparés de p positions chacun avec le tri par insertion. L'alghorithme effectue plusieurs fois cette opération en diminuant p jusqu'à p égal à 1, ce qui équivaut à trier tous les éléments ensemble. Exemple : Nous proposons d'utiliser la méthode du tri shell pour trier un tableau t d'entiers en ordre croissant. - Considérons le tableau T contenant les 15 élément suivants: Citation:
Code source du tri shel en Pascal : Code :
|
|||||
|
|
00
|
|
|
#6 | |||
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 4 ![]() |
Citation:
0) Code :
|
|||
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() |
Bonjours hela_midou c'est vraiment impeccable comme leçon, merci de m'avoir expliqué cette méthode de tri-là et je souhaite que ce ne soit pas la dernière difficulté.
Merci à tous [Jlidi_Mohamed] |
|
|
00
|
|
|
#8 | |||
|
Expert Confirmé
![]() ![]() Inscription : août 2006 Messages : 3 414 ![]() |
Dio,
Citation:
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir. |
|||
|
|
00
|
|
|
#9 |
|
Invité régulier
![]() |
wi c vraiment ce que tu dis il n'ya pas aucune recurcivité dans cet algo je veut dire céça mon problème (tri shell récurcif) qui n'a pas de solution s'ils vous plait
tous ce qui peut m'aider alors ne pas rater. et merci beaucoup pour tous [Jlidi Mohamed] |
|
|
00
|
|
|
#10 | ||||
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 11 ![]() |
Dans le programme principal on met :
Code :
Code :
|
||||
|
|
00
|
|
|
#11 | ||
|
Invité régulier
![]() |
Merci, mais ce que j'ai pas compris c'est cette phrase là :
Code :
|
||
|
|
00
|
|
|
#12 | ||
|
Expert Confirmé
![]() Tlouye Ci Inscription : mars 2004 Messages : 1 800 ![]() |
Le [/b] est juste une erreur de balisage
La balise "B" sert à mettre le éléments en gras, le code qu'il voulait écrire était : Code :
|
||
|
|
00
|
|
|
#13 | ||
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 4 ![]() |
Code :
et m 'affiche cette error: string expression expected |
||
|
|
00
|
|
|
#14 |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 11 ![]() |
au lieu d'ecrire
decaller(t,i-p );pos()); on ecrit : decaller(t,i-p ,pos); |
|
|
00
|
|
|
#15 |
|
Invité de passage
![]() Inscription : janvier 2008 Messages : 4 ![]() |
donc pour quoi il m affiche error?
error89 :')'expected |
|
|
00
|
|
|
#16 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2006 Messages : 294 ![]() |
Salut
Moi aussi je suis interesser par cette nouvelle methode de tri j'ai cherche dans le net mais j'ai pas trouver un code en pascal bien commente pour tri shell recurssif j'esper que vous pouvez m'aidez |
|
|
00
|
|
|
#17 | |
|
Expert Confirmé
![]() ![]() Inscription : août 2006 Messages : 3 414 ![]() |
Hia,
Citation:
Le web fourmille de pages parlant de cet algorithme, et un des premiers liens renvoyés par Google pour la recherche tri shell récursif est justement une implémentation en Pascal. Accessoirement, cette méthode n'a rien de nouveau.
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir. |
|
|
|
00
|
|
|
#18 |
|
Membre éclairé
![]() Étudiant Inscription : avril 2008 Messages : 280 ![]() |
bonjour,
en effet, ce n'est pas nouveau. Par contre, ce tri n'est pas très stable, bien qu'évolution au niveau de la rapidité par rapport au tri par insertion, il faut choisir à chaque fois un espacement entre les éléments adéquat, et donc la généralisation bof bof...La complexité est fort variante selon l'échantillon de données. |
|
|
00
|
|
|
#19 | |
|
Expert Confirmé
![]() ![]() Inscription : août 2006 Messages : 3 414 ![]() |
Hia,
Citation:
Sauf cas particulier, genre données souvent presque classées, ou au contraire très aléatoires, il faut choisir le tri utilisé sur des données réelles, et choisir celui qui, en moyenne, est le plus performant. Sans oublier que la quantité de données intervient également, bien entendu.
__________________
Il court en ce moment une espèce de grippe, mais elle ne court pas très vite, car on peut l'attraper sans courir. |
|
|
|
00
|
|
|
#20 | |
|
Nouveau Membre du Club
![]() Inscription : avril 2007 Messages : 38 ![]() |
Citation:
et faire tourner le programme en mode débogage pour vérifier que la boucle s'exécute correctement. |
|
|
|
00
|
Copyright © 2000-2013 - www.developpez.com