Accueil > Forum > > > > le tri rapide
le tri rapide
dimanche 5 février 2006 à 15:46:15 |
le tri rapide

hassni55
|
merci pour tous les personnes qui m'ont aidez, mais je revien aujourd'hui avec un autre probléme : j'ai un tableau statique TAB(0 to 5) as Integer je vaudrais trier ce tableau en ordre croissant, mais en utilisant le Tri rapide. merciiiiiiiii
|
|
dimanche 5 février 2006 à 15:58:51 |
Re : le tri rapide

jack
|
Salut Il existe plusieurs méthodes de tri. Il suffit de lire quelques sources que tu trouveras en tapant "méthode tri" puis la recherche par Google. A toi de faire des essais et de tester la meilleure méthode, mais franchement, avec 6 éléments dans ton tableau, ce n'est pas la peine de te casser la tête à vouloir gagner de la vitesse. D'autre part, évite sous VB d'utiliser des mots clés du langage pour désigner des variables : TAB n'est pas conseillé (iTab serait bien)
Vala Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage. (Socrate)
|
|
dimanche 5 février 2006 à 17:44:51 |
Re : le tri rapide

hassni55
|
j'ai des algorihmes de tri rapide mais pour le transformer en visual basic ce me derange un peu. pour cela je demande d'aide, pas c koi le tri rapide ou comment ca marche mais comme j'entrain de te dire le prblm est en vb merci pour votre compréhension .
|
|
dimanche 5 février 2006 à 22:17:31 |
Re : le tri rapide

econs
|
Voilà un exemple de tri. (Tri bulle)
Dim iTab(0 To 5) As Integer
Dim Index_Max_du_Tableau As Long
Dim iTemp As Integer
Dim l, j, k As Long
iTab(0) = 15
iTab(1) = 54
iTab(2) = 64
iTab(3) = 12
iTab(4) = 87
iTab(5) = 77
Index_Max_du_Tableau = 5
For l = 0 To Index_Max_du_Tableau - 1
For k = Index_Max_du_Tableau - l To 1 Step -1
If iTab(k - 1) > iTab(k) Then
iTemp = iTab(k)
iTab(k) = iTab(k - 1)
iTab(k - 1) = iTemp
End If
Next k
Next l
Manu
|
|
dimanche 5 février 2006 à 22:19:16 |
Re : le tri rapide

econs
|
Je l'ai réécrit, parce que je me suis rendu compte qu'un L minuscule et
le chiffre 1, ç se ressemble beaucoup en police Courier. Donc là, plus
possible de les confondre :
Dim iTab(0 To 5) As Integer
Dim Index_Max_du_Tableau As Long
Dim iTemp As Integer
Dim ll, k As Long
iTab(0) = 15
iTab(1) = 54
iTab(2) = 64
iTab(3) = 12
iTab(4) = 87
iTab(5) = 77
Index_Max_du_Tableau = 5
For ll = 0 To Index_Max_du_Tableau - 1
For k = Index_Max_du_Tableau - ll To 1 Step -1
If iTab(k - 1) > iTab(k) Then
iTemp = iTab(k)
iTab(k) = iTab(k - 1)
iTab(k - 1) = iTemp
End If
Next k
Next ll
Manu
|
|
dimanche 5 février 2006 à 23:48:42 |
Re : le tri rapide

Gobillot
|
Voilà un exemple de tri rapide
' le paramètre Debut correspond au numéro du premier élément à trier
' le paramètre Fin correspond au numéro du dernier élément à trier
' le paramètre Tableau() est le tableau à trier
Sub TriRapide(Debut As Long, Fin As Long, Tableau As Variant)
Dim i As Long
Dim J As Long
Dim Ligne_Milieu As Variant
Dim Ligne_Tampon As Variant
i = Debut
J = Fin
Ligne_Milieu = Tableau((Debut + Fin) \ 2)
Do
While Ligne_Milieu > Tableau(i)
i = i + 1
Wend
While Ligne_Milieu < Tableau(J)
J = J - 1
Wend
If i <= J Then
Ligne_Tampon = Tableau(i)
Tableau(i) = Tableau(J)
Tableau(J) = Ligne_Tampon
i = i + 1
J = J - 1
End If
Loop Until i > J
If Debut < J Then
TriRapide Debut, J, Tableau
End If
If i < Fin Then
TriRapide i, Fin, Tableau
End If
End Sub
Daniel
|
|
lundi 6 février 2006 à 15:45:35 |
Re : le tri rapide

hassni55
|
merci, pour votre aide, mais encore le probléme est de remplacer a procédure Tri rapide par autres instructions (j'aime pas l'utiliser sous forme d'une procédure ) parceque j'ai pas encore attaqué les fonctions et les procédures, j'ai essayé avec ces instructions :
Private sub Command1_Click( ) ' partionner le tableau selon un pivot pivot = t(0) PosPivot = 0 for i = lbound(t)+1 to Ubound(t) if t(i) < pivot then PosPivot = PosPivot +1 tmp = t(i) t(PosPivot) = tmp end if Next i ' Placer le pivot a sa place finale tmp = t(PosPivot) t(PosPivot) = Pivot t(0) = tmp ' trier les 2 sous tableaux crées içi le probléme la pluspart des prog utilisant des procédures comme suit : TriRapide D,i-2,t SVP est ce que quelqun peut me dire ce qu'il faut écrire dans cette dérniere partie. Merci
|
|
lundi 6 février 2006 à 17:30:07 |
Re : le tri rapide

Gobillot
|
pour le récurssif il faut obligatoirement une procédure.
celui ci est un peu moins rapide que le QuickSort, mais il n'est pas récursif et tu peux l'utiliser où tu veux.
il suffit d'avoir défini Nb_Element, et le Tableau() qui n'est obligé d'être variant.
Sub Tri_Shell_Metzner(ByVal Nb_Element As Long, Tableau As Variant)
Dim Ecart As Long
Dim I As Long
Dim J As Long
Dim Permut As Boolean
Dim Ligne_Tampon As Variant
Ecart = Nb_Element \ 2
Do While Ecart <> 0
For I = 1 To Nb_Element - Ecart
J = I
Permut = True
Do While J > 0 And Permut
Permut = False
If Tableau(J) > Tableau(J + Ecart) Then
Ligne_Tampon = Tableau(J)
Tableau(J) = Tableau(J + Ecart)
Tableau(J + Ecart) = Ligne_Tampon
Permut = True
J = J - Ecart
End If
Loop
Next I
Ecart = Ecart \ 2
Loop
End Sub
Daniel
|
|
mercredi 30 juillet 2008 à 05:36:55 |
Re : le tri rapide
|
Cette discussion est classée dans : tableau, tri, rapide
Répondre à ce message
Sujets en rapport avec ce message
Tri dans un tableau? [ par Georges ]
Voilà mon problème: J'ai un tableau à 1 dimension assez grand (+ de 3000 éléments) contenant des valeurs numériques. Je voudrais pouvoir sortir le
tri de tableau à 2 dimensions [ par ElMagnifico ]
Bonjour!Voila j'ai un tableau dynamique de type String à deux dimensions et j'aimerais le trier dans l'ordre alphabétique de la première colonne (0)..
tri dans un tableau [ par sash ]
Salut à tous.Voilà mon problème : j'ai un sstab avec 4 onglets. Dans 3 des onglets,j'ai un datagrid relié un contrôle adodc relié à une bdd access.Dan
tri d'un tableau avec type [ par mat6 ]
je cherche à trier un tableau de type T comprenant 2 attributs A1(Byte) et A2(Integer).Le tri doit s'effectuer par ordre décroissant des valeurs de A2
tri d'onglet excel et recopiage dans un tableau [ par vbdebut ]
Bonjour à tous,J'aimerais avoir votre aide sur un point précis.Je voudrais savoir comment on peut concevoir une macro dans Excel qui trie les onglets
Tri tableau Excell avec VB [ par jeromepol49 ]
Comment utiliser la fonction de tri alphabétique "a z" d'Excell à partir de VB?
Tri par ordre alphabétique d'un tableau [ par sankukai ]
Bonjour à tous,Soit un tableau tout bete declare comme suit :Dim tableau() as StringJe le rempli avec des valeurs, et je voudrais ensuite trier les v
tri de tableau interne sous Excel [ par pthirard ]
Excel permet de trier rapidement un tableau dans une feuille.Si on a un tableau interne déclaré dans une macro excel (écrite en VB), comment faire pou
tri sur quatre colonnesavec lien entre elles [ par kyo.ced ]
bonjour, je vous explique, je débute en VBA. Je souhaiterai tri un tableau. Dans ce tableau, il y a quatre colonne et un nombre infini de lignes. Une
tri tableau [ par damd ]
salutj'aimerai savoir comment trier un tableau.en fait, est-ce qu'il existe une fonction ou bien il faut creer un algo ?s'il y a une fonction, j'aimer
Livres en rapport
|
Derniers Blogs
GESTION D'EXCEPTION AVEC LES TASKSGESTION D'EXCEPTION AVEC LES TASKS par richardc
Nous avons vu dans un précédent article comment utiliser Task pour effectuer des opérations dans un autre thread.
Malheureusement, comme tout le monde n'est pas parfait, il se peut que cette exécution se passe mal et qu'une exception se produise.
La...
Cliquez pour lire la suite de l'article par richardc DéMARRONS AVEC LES TASKSDéMARRONS AVEC LES TASKS par richardc
Que vous le vouliez ou non, le développement multi-tâche est maintenant une obligation pour toute nouvelle application. Il est donc vital d'en comprendre les mécanismes et de s'y mettre le plus tôt possible.
En attendant le .NET Framework 4.5 avec le...
Cliquez pour lire la suite de l'article par richardc SLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPSSLIDE & DéMO TECHDAYS 2012 - FAST & FURIOUS XAML APPS par Vko
Retrouvez les slides et les démo de ma session Fast & Furious XAML Apps. A ceux qui se posent la question : "est-ce que le code de la DataGrid est disponible?", je vous répondrais "pas encore". Je vais mettre en place un projet codeplex pour part...
Cliquez pour lire la suite de l'article par Vko XNA IS DEAD!XNA IS DEAD! par richardc
Depuis la semaine dernière (et grâce aux TechDays 2012), je me penche activement sur la nouvelle version de Windows, aka Windows 8. Vous me direz, il était temps puisque la première preview date de Septembre dernier.
OK. Remarquez, on n'en est qu'aux...
Cliquez pour lire la suite de l'article par richardc TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|