Func _QUICK_SORT(ByRef $SORTARRAY, $FIRST, $LAST) Dim $LOW, $HIGH Dim $TEMP, $LIST_SEPARATOR $LOW = $FIRST $HIGH = $LAST $LIST_SEPARATOR = StringLen($SORTARRAY[($FIRST + $LAST) / 2]) Do While (StringLen($SORTARRAY[$LOW]) < $LIST_SEPARATOR) $LOW = $LOW + 1 WEnd While (StringLen($SORTARRAY[$HIGH]) > $LIST_SEPARATOR) $HIGH = $HIGH - 1 WEnd If ($LOW <= $HIGH) Then $TEMP = $SORTARRAY[$LOW] $SORTARRAY[$LOW] = $SORTARRAY[$HIGH] $SORTARRAY[$HIGH] = $TEMP $LOW = $LOW + 1 $HIGH = $HIGH - 1 EndIf Until $LOW > $HIGH If ($FIRST < $HIGH) Then _QUICK_SORT($SORTARRAY, $FIRST, $HIGH) If ($LOW < $LAST) Then _QUICK_SORT($SORTARRAY, $LOW, $LAST) EndFunc |