Forum » » Création-Développement » » J'ai besoin d'aide
Posté : 21-12-2010 09:51
Bon alors voilà, je reprécise que je ne connais pas du tout Hollywood, j'ai fait deux trois recherches pour la syntaxe et je n'ai pas testé mon code (forcément puisque je n'ai pas Hollywood). Ce code ne fonctionne (enfin j'espère) que pour le tableau avec la structure PZM, X, Y et D.
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