Le tri par insertion

hassni55 Messages postés 31 Date d'inscription dimanche 1 janvier 2006 Statut Membre Dernière intervention 5 mars 2007 - 2 févr. 2006 à 13:20
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 - 2 févr. 2006 à 21:27
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

crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
2 févr. 2006 à 13:51
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
0
jpleroisse Messages postés 1788 Date d'inscription mardi 7 novembre 2000 Statut Membre Dernière intervention 11 mars 2006 27
2 févr. 2006 à 15:18
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.
0
hassni55 Messages postés 31 Date d'inscription dimanche 1 janvier 2006 Statut Membre Dernière intervention 5 mars 2007
2 févr. 2006 à 15:46
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.
0
Gobillot Messages postés 3140 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 11 mars 2019 34
2 févr. 2006 à 21:27
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
0
Rejoignez-nous