Trie un tableau 1D ou 2D sur un index sp�cifique en utilisant les algorithmes DualPivotSort/QuickSort/InsertionSort
#include <Array.au3>
_ArraySort ( ByRef $aArray [, $iDescending = 0 [, $iStart = 0 [, $iEnd = 0 [, $iSubItem = 0 [, $iPivot = 0]]]]] )
$aArray | Tableau � trier |
$iDescending | [optionnel] Si d�fini � 1, tri dans l'ordre d�croissant |
$iStart | [optionnel] Index du tableau o� commencer le tri (par d�faut 0 = premier �l�ment ou premi�re ligne) |
$iEnd | [optionnel] Index du tableau o� arr�ter le tri (par d�faut 0 = dernier �l�ment ou derni�re ligne) |
$iSubItem | [optionnel] Sous-index pour trier dans des tableaux 2D (par d�faut 0 = premi�re colonne) |
$iPivot | [optionnel] Utilise l'algorithme du pivot - par d�faut, QuickSort |
Succ�s: | Retourne 1. |
�chec: | Retourne 0 et d�finit @error <> 0. |
@error: | 1 - $aArray n'est pas un tableau 2 - $iStart est sup�rieure � $iEnd 3 - $iSubItem est plus grand que le nombre de sous-items 4 - $aArray n'est pas un tableau 1D ou 2D 5 - $aArray est vide 6 - $iPivot utilis� avec un tableau 2D |
Par d�faut, la fonction utilise l'algorithme QuickSort pour trier le tableau. D�finissez le param�tre $iPivot pour utiliser l'algorithme du DualPivotSort sur un tableau 1D - cela peut �tre beaucoup plus rapide pour des grands tableaux (> 50 �l�ments) - mais le tri des tableaux 2D avec cet algorithme est tr�s lent et la fonction retournera une erreur dans ce cas.
Dans les deux algorithmes, des tableaux relativement courts seront tri�s � l'aide d'un tri par insertion (< 15 �l�ments avec QuickSort; < 45 �l�ments avec Dual PivotSort).
Notez qu'il n'y a aucune garantie qu'un algorithme sp�cifique soit plus rapide dans un cas donn�.
; Tri d'un tableau 1D #include <Array.au3> Local $avArray[10] = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] _ArrayDisplay($avArray, "AVANT _ArraySort()") _ArraySort($avArray) _ArrayDisplay($avArray, "APRES QuickSort ascendant") _ArraySort($avArray, 1) _ArrayDisplay($avArray, "APRES QuickSort descendant") _ArraySort($avArray, 0, 3, 6) _ArrayDisplay($avArray, "APRES QuickSort des index 3 � 6") _ArraySort($avArray, 0, 0, 0, 0, 1) _ArrayDisplay($avArray, "APRES DualPivotSort ascendant")
; Tri d'un tableau 2D #include <Array.au3> Local $avArray[5][3] = [ _ [5, 20, 8], _ [4, 32, 7], _ [3, 16, 9], _ [2, 35, 0], _ [1, 19, 6]] _ArrayDisplay($avArray, "$avArray AVANT _ArraySort()") _ArraySort($avArray, 0, 0, 0, 0) _ArrayDisplay($avArray, "$avArray APRES _ArraySort() ascendant col 0") _ArraySort($avArray, 0, 0, 0, 1) _ArrayDisplay($avArray, "$avArray APRES _ArraySort() ascendant col 1") _ArraySort($avArray, 0, 0, 0, 2) _ArrayDisplay($avArray, "$avArray APRES _ArraySort() ascendant col 2")