En fait j'ai galérer pas mal pour toruver une méthode de tri assez rapide, (en tout cas plus que le tri à bulle)
et j'ai trouvé cette méthode de tri par insertion qeu j'ai mis en pratique en vbscript pour de l'asp....
plus d'infos sur la méthode sur ces sites :
http://homepage.mac.com/pierremousel/IGT2IF/IGT2IFTris.html
http://www-ipst.u-strasbg.fr/ipst/deug-ti/aide-c/tris/triinser.htm
Désolé j'ai été avare de commentaire, mais pour faire bref je récupère les valeurs dans les cases je les converti en majuscules dans une dimension du tableau et je conserve la casse d'origine dans l'autre dimension ensuite j'axécute les focntions qui vont bien (voir les algos pourplus d'explications) et je retourne le tableau trié.
Moins de 2 sec. pour une page ASP avec 120 éléments à l'intérieur. très intéressant. non ?
Source / Exemple :
<HTML>
<HEAD>
<SCRIPT language="VBscript">
Function Trier(Formulaire)
dim tableau(4,1)
document.form2.TexteOrigine.value = ""
For i = 0 to 4
tableau(i,0) = ucase(Formulaire.zone(i).value)
tableau(i,1) = Formulaire.zone(i).value
next
trier_Tableau(tableau)
End Function
Function trier_Tableau(Tab_tri)
nb_ligne = ubound(tab_tri)
call triinsertion(tab_tri, nb_ligne)
for i = 0 to nb_ligne
document.form2.TexteOrigine.value = document.form2.TexteOrigine.value & i & "=" & tab_tri(i,0) & "/" & tab_tri(i,1) & vbcrlf
next
End Function
Function TriInsertion(Tableau, Nb_Elements)
Dim pt 'Position testée
For pt = 1 To Nb_Elements
call decaletab(Tableau, pt)
Next
TriInsertion = tableau
End Function
Function decaletab(Tableau, Position_Test)
dim DPG 'Dernier Plus grand
dim Tampon
dim Tampon_Min
DPG = Position_Test-1
Tampon = tableau(Position_Test,0)
Tampon_Min = tableau(Position_Test,1)
do while DPG >=0 and strcomp(tableau(DPG,0),Tampon,1)=1
Tableau(DPG+1,0)=Tableau(DPG,0)
Tableau(DPG+1,1)=Tableau(DPG,1)
DPG = DPG-1
if dpg < 0 then exit do
loop
Tableau(DPG+1,0)=Tampon
Tableau(DPG+1,1)=Tampon_Min
decaletab = tableau
End Function
</SCRIPT>
</HEAD>
<BODY>
<FORM NAME="form2">
<input type="text" name="zone" VALUE="tutu">tri 1<br>
<input type="text" name="zone" VALUE="titi">tri 2<br>
<input type="text" name="zone" VALUE="tata">tri 3<br>
<input type="text" name="zone" VALUE="toto">tri 4<br>
<input type="text" name="zone" VALUE="tete">tri 5<br>
<INPUT TYPE="button" NAME="bouton" VALUE="Trier" onClick="Trier(form2)"><BR>
<br>
Zone triée
<br>
<TEXTAREA NAME="TexteOrigine" ROWS=5 COLS=40>
</TEXTAREA>
</FORM>
</BODY>
</HTML>
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.