Tri Rapide
Résolu/Fermé
bupole
Messages postés
8
Date d'inscription
mercredi 23 octobre 2013
Statut
Membre
Dernière intervention
1 septembre 2016
-
Modifié par bupole le 9/12/2015 à 12:52
bupole Messages postés 8 Date d'inscription mercredi 23 octobre 2013 Statut Membre Dernière intervention 1 septembre 2016 - 16 déc. 2015 à 00:25
bupole Messages postés 8 Date d'inscription mercredi 23 octobre 2013 Statut Membre Dernière intervention 1 septembre 2016 - 16 déc. 2015 à 00:25
A voir également:
- Tri Rapide
- Acces rapide - Guide
- Tri excel - Guide
- Copie rapide - Télécharger - Gestion de fichiers
- Logiciel tri photo gratuit - Guide
- Telechargement rapide - Télécharger - Téléchargement & Transfert
1 réponse
michel_m
Messages postés
16603
Date d'inscription
lundi 12 septembre 2005
Statut
Contributeur
Dernière intervention
16 décembre 2023
3 312
Modifié par michel_m le 9/12/2015 à 13:36
Modifié par michel_m le 9/12/2015 à 13:36
Bonjour
code VBa de tri rapide ( je n'en suis pas l'auteur)
ses explications
Son principe consiste à trier une partie d'un tableau délimité par 2 indices, on choisit une valeur de ce tableau qui servira de pivot qu'on place de manière définitive de manière à ce que tous les éléments précdents ce pivot lui soient inférieurs ou égaux et que tous les suivants lui soient supérieurs ou égaux. On prend comme pivot la valeur médiane
vba mais d'après ce que tu as écrit, ca semble identique au vb.net....
Michel
code VBa de tri rapide ( je n'en suis pas l'auteur)
ses explications
Son principe consiste à trier une partie d'un tableau délimité par 2 indices, on choisit une valeur de ce tableau qui servira de pivot qu'on place de manière définitive de manière à ce que tous les éléments précdents ce pivot lui soient inférieurs ou égaux et que tous les suivants lui soient supérieurs ou égaux. On prend comme pivot la valeur médiane
vba mais d'après ce que tu as écrit, ca semble identique au vb.net....
Sub TrieTableau(Deb As Long, Fin As Long)'Ti
Dim IndiceInf As Long, IndiceSup As Long
Dim Temp1, Pivot
IndiceInf = Deb
IndiceSup = Fin
Pivot = UCase(T((Deb + Fin) \ 2))
Do
While UCase(T(IndiceInf)) < Pivot
IndiceInf = IndiceInf + 1
Wend
While Pivot < UCase(T(IndiceSup))
IndiceSup = IndiceSup - 1
Wend
If IndiceInf <= IndiceSup Then
Temp1 = T(IndiceInf)
T(IndiceInf) = T(IndiceSup)
T(IndiceSup) = Temp1
IndiceInf = IndiceInf + 1
IndiceSup = IndiceSup - 1
End If
Loop Until IndiceInf > IndiceSup
If Deb < IndiceSup Then TrieTableau Deb, IndiceSup
If IndiceInf < Fin Then TrieTableau IndiceInf, Fin
End Sub
Michel
11 déc. 2015 à 16:23
Merci...
de rien
Modifié par bupole le 16/12/2015 à 00:44