Le tri par insertion

Signaler
Messages postés
31
Date d'inscription
dimanche 1 janvier 2006
Statut
Membre
Dernière intervention
5 mars 2007
-
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
-
SVP; Aidez moi, j'ai besoin de résoudre ce problem, j'ai tenter pas mal d'essai mais sans aucune resultat , merci d'avance
suite à l'algo de tri par insertion :
Debut
variables : i,j,tmp : entier
tableau : t(0 to 5) : entier
Pour i de 1 à 5 Faire
tmp <= t(i)
j<= i
tant que j>0 et t(j-1) > tmp faire
t(j) <= t(j-1)
j <= j-1
fin tant que
t(j) <= tmp
fin pour
fin
j'essayé de traduire de peuso sous Visual Basic 6.0 ; j'ai utiliser une List Box pour afficher le contenu du Tableua T, Mais toujours tous les éléments sont triés sauf le premier, Mais quand je met j > 1 la meme chose
Le code sous Visual Basic Est :
for i = 1 to 5
tmp= t(i) ' selection de l'element a inserer
j=i
while j>0 and t(j-1)>tmp ' decalage des elements plus grand
t(j) = t(j-1)
list1.list(j) = t(j-1)
j = j -1
wend
t(j)= tmp ' Insertion
list1.list(j)= tmp
next i

4 réponses

Messages postés
4172
Date d'inscription
mercredi 30 juillet 2003
Statut
Membre
Dernière intervention
9 juin 2006
27
Pour ce qui est des tri, un conseil :
1- Faire ta boucle de tri
2- Refaire une seconde boucle pour afficher les données du tableau après le tri.

Et fait attention a ce que la propriété Sorted de la listbox ne soit pas à True !!!

CR
Messages postés
1788
Date d'inscription
mardi 7 novembre 2000
Statut
Membre
Dernière intervention
11 mars 2006
26
Bonjour,

Ton code ne fonctionne pas chez moi (parce que imcomplet)

Voici un code de tri d'un tableau de String



Private Sub Command1_Click()

Dim MonTab(5) As String

Dim x As String

Dim i As Integer

Dim j As Integer



' remplissage du tableau

MonTab(0) = "Zéphir"

MonTab(1) = "Torrence"

MonTab(2) = "Albert"

MonTab(3) = "Bernadette"

MonTab(4) = "Catherine"

MonTab(5) = "Marcel"



' trier le tableau

For i = 0 To UBound(MonTab) - 1

For j = i + 1 To UBound(MonTab)

If MonTab(i) > MonTab(j) Then

x = MonTab(i)

MonTab(i) = MonTab(j)

MonTab(j) = x

End If

Next j

Next i



' Visualiser le résultat

For i = 0 To UBound(MonTab)

List1.AddItem MonTab(i)

Next

End Sub



jpleroisse



Si une réponse vous convient, cliquez Réponse Acceptée.
Messages postés
31
Date d'inscription
dimanche 1 janvier 2006
Statut
Membre
Dernière intervention
5 mars 2007

merci; mais ici tu applique le tri a bulle, mois je demande le tri par insertion son pricipe est de inserer l'element mal tries dans une suite d'elements deja tries et ainsi de suite, merci encore une fois
si vous avez quelque chose pour le tri par insertion appliqué sur un tableau des entiers.
Messages postés
3140
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
11 mars 2019
31
Dim i As Integer

Dim j As Integer

Dim tmp As Integer



t(0) = 0

For i = 2 To UBound(t)

tmp = t(i)

j = i

Do Until t(j - 1) < tmp

t(j) = t(j - 1)

j = j - 1

Loop

t(j) = tmp

Next i




Daniel