[TUTO] Trier un tableau
Publié : sam. 24/déc./2016 16:54
Voici quelques algorithmes de tri
Nb: Ceci est un transposition de code C, donc je n'ai pas utilisé la fonction swap
1) Le tri par permutation (buble sort)
2) Le tri par insertion
(a suivre...)
3) Le tri par tas heap sort
Nb: Ceci est un transposition de code C, donc je n'ai pas utilisé la fonction swap
1) Le tri par permutation (buble sort)
Code : Tout sélectionner
; Tri par permutation Buble sort
Procedure BubleSort(Array v.i(1),n)
Protected sent.b=0,i=0,E
While (n<>1 And sent=0)
sent=1
For i=0 To n-2
If(v(i)>v(i+1))
E=v(i)
v(i)=v(i+1)
v(i+1)=E
sent=0
EndIf
Next
n-1
Wend
EndProcedure
Procedure Affiche(Array v.i(1),n)
Protected i
For i=0 To n-1
Debug "Vecteur "+Str(i)+" : "+Str(v(i))
Next
EndProcedure
; Un tableau pour le teste
Dim v.i(100)
v(0)=85
v(1)=2
v(2)=8
v(3)=5
v(4)=-8
v(5)=36
v(6)=14
v(7)=6
v(8)=-7
v(9)=57
Define n.i=10
Debug "Vecteur non-trié:"
Affiche(v(),n)
BubleSort(v(),n)
Debug "Vecteur trié:"
Affiche(v(),n)
Code : Tout sélectionner
; Tri par insertion
Procedure InsertionSort(Array v.i(1),n)
Protected x.i,j,i
For j=n-2 To 0 Step -1
x=v(j)
i=j+1
While(i<n And x>v(i))
v(i-1)=v(i)
i+1
Wend
v(i-1)=x
Next
EndProcedure
Procedure Affiche(Array v.i(1),n)
Protected i
For i=0 To n-1
Debug "Vecteur "+Str(i)+" : "+Str(v(i))
Next
EndProcedure
; Un tableau pour le teste
Dim v.i(100)
v(0)=85
v(1)=2
v(2)=8
v(3)=5
v(4)=-8
v(5)=36
v(6)=14
v(7)=6
v(8)=-7
v(9)=57
Define n.i=10
Debug "Vecteur non-trié:"
Affiche(v(),n)
InsertionSort(v(),n)
Debug "Vecteur trié:"
Affiche(v(),n)
3) Le tri par tas heap sort