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
UNE JOLIE-HORLOGE ET PAS QU'UN PEU !UNE JOLIE-HORLOGE ET PAS QU'UN PEU ! par neodante
Pour les possesseurs d'iPhone, ça y est Bijin Tokei - qui se traduit littéralement en Français par " Jolie Horloge " - est arrivé et GRATUITEMENT s'il vous plaît ! Après la version Tokyo, Hokkaido, night club, racing, Gal, "pour les mademoiselles'", . voi...
Cliquez pour lire la suite de l'article par neodante TECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICESTECHDAYS PARIS 2010 : CONNECTEZ VOS DONNéES à SHAREPOINT 2010 AVEC LES BUSINESS CONNECTIVITY SERVICES par ROMELARD Fabrice
Animé par: Gaetan Bouveret et Julien Chomarat Business Connectivity Services (BCS) est dans SharePoint 2010 la version 2 de Business Data Catalog (BDC dans SharePoint 2007). Il s'agit de la solution permettant de visualiser des données provenan...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE[DIVERS] SUIVRE VOS SéRIES PRéFéRéS SUR LA TOILE par orion
Comme de nombreux geek, je suis un grand amateur de série TV et je rate régulièrement des épisodes de mes séries préférés. Une solution s'offre à vous avec ce merveilleux site : Tv Gorge - www.tvgorge.com Moteur de recherche à l'appui, vous pouvez ...
Cliquez pour lire la suite de l'article par orion TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010TECHDAYS PARIS 2010 : LA BI DANS SHAREPOINT 2010 par ROMELARD Fabrice
Animé par: Vincent Bellet et Baptiste Giraudier La BI dans SharePoint 2010, Les nouveaux services d'application dans SP2010 et SQL Server Reporting services 2008 R2. La BI dans SharePoint est généralisée pour tous afin de permettre à tous les coll...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice
Forum
VB.NET ET COMBOBOXVB.NET ET COMBOBOX par minouthebreaker
Cliquez pour lire la suite par minouthebreaker
Logiciels
DB-MAIN (9.1.0)DB-MAIN (9.1.0)DB-MAIN is a data-modeling and data-architecture tool. It is designed to help developers and anal... Cliquez pour télécharger DB-MAIN Xilisoft DPG Convertisseur (5.1.37.0120)XILISOFT DPG CONVERTISSEUR (5.1.37.0120)Xilisoft DPG Convertisseur offre aux fans de Nintendo DS une bonne solution leur permettant de dé... Cliquez pour télécharger Xilisoft DPG Convertisseur GraphicsGale (2.01.01)GRAPHICSGALE (2.01.01)GraphicsGale est un logiciel de PixelArt avec de nombreuse fonctionnalités permettant de réalisé ... Cliquez pour télécharger GraphicsGale Architecte 3D (Platinum 2010)ARCHITECTE 3D (PLATINUM 2010)Architecte 3D Platinium vous permet de concevoir facilement les plans votre future maison, de l'é... Cliquez pour télécharger Architecte 3D TeamViewer 5 (TeamViewer 5)TEAMVIEWER 5 (TEAMVIEWER 5)Dépanner un ami,expliquer une manipulation devient un jeu d'enfant.
Prise en main d'un autre ord... Cliquez pour télécharger TeamViewer 5
|