
Forum » » Création-Développement » » J'ai besoin d'aide
Posté : 21-12-2010 09:51 ![]()
Function tri_rapide(tableau, premier, dernier)
If premier < dernier
Local pivot = choix_pivot(tableau, premier, dernier)
pivot = partitionne r(tableau, premier, dernier, pivot)
tri_rapide(tableau, prem ier, pivot-1)
tri_rapide(tableau, pivo t+1, dernier)
EndIf
EndFunction
Function choix_pivot(tableau, premier, dernier)
; on choisit toujours le pre mier élément comme pivot
return(premier)
EndFunction
Function partitionner(tableau, premier, dernier, pivot)
echanger(tableau, pivot, dernier)
Local j = premier
For Local i = premier to&nbs p;dernier-1
If tableau[i].PZM & lt;= tableau[j].PZM
echan ger(tableau, i, j)
Add(j ,1)
Next
echanger(tableau, dernier, j)
Return(j)
EndFunction
Function echanger(tableau, index1, index2)
; on mémorise les valeurs& nbsp;liées à index 1
Local PZM = tableau[index1].PZM
Local X = tableau[index1].X
Local Y = tableau[index1].Y
Local D = tableau[index1].D
; on recopie les valeurs li& eacute;es à index2 dans index1
tableau[index1].PZM = tableau[index2].PZM
tableau[index1].X = tableau[index2].X
tableau[index1].Y = tableau[index2].Y
tableau[index1].D = tableau[index2].D
; on recopie les valeurs m&e acute;morisées dans index2
tableau[index2].PZM = PZM
tableau[index2].X = X
tableau[index2].Y = Y
tableau[index2].D = D
EndFunction
tri_rapide(PT, 0, 95)
Cet article provient de Le site des utilisateurs francophones actuels et futurs d'AmigaOS 4.x
https://amiga-ng.org/viewtopic.php?topic=942&forum=14