-
Notifications
You must be signed in to change notification settings - Fork 2
VorlageDokuCmdSort
Sortierung von Arrays
#sort <array> [<lessfunc> [<arg1> [...]]]
Dieser Befehl ermöglicht es Arrays zu sortieren. Wird der Name einer Vergleichsfunktion lessfunc angegeben, so wird diese verwendet, andernfalls der Kleiner-Operator.
Die aufgerufene Funktion, falls angegeben, sollte die Signatur wie z.B.
#func LessThan $arrayname $i1 $i2
haben und bekommt in $arrayname
den Namen des Arrays (für Inplace-Zugriff) und in $i1
und $i2
jeweils die Indizes der beiden Einträge. Die Funktion sollte einen Wert ungleich 0
liefern, falls für die beiden Indizes '$($arrayname)[$i1]<$($arrayname)[$i2]'
gilt, sonst 0
.
Die eventuell weiter angegebenen Werte werden an die Funktion durchgereicht, sie muss dann aber auch exakt so viele Parameter erwarten, wie dem Befehl mitgegeben werden, sonst erfolgt eine Fehlermeldung.
Zu beachten ist, dass bei Verwendung einer eigenen LessThan
Funktion sich das zu sortierende Array im globalen Kontext befinden muss, da die LessThan
Funktion sonst nicht darauf zugreifen kann.
Der #sort-Befehl verwendet intern den Quicksort-Algorithmus und ist dank interner Kopiertricks vor allem bei Behältern im Array immer einer Eigenimplementierung vorzuziehen.
array
- Hier wird das zu sortierende Array übergeben
lessfunc
- Optionale "Kleiner-als-Funktion" die für die Vergleiche beim Sortieren verwendet wird
arg1
- Erster der optionalen Parameter die (z.B. zur Sortiermodus-Wahl) an die "Kleiner-als-Funktion" übergeben werden
Sorry, noch kein Beispiel.
- Allgemeines
- Einführung
-
Funktionen
- abs()
- after()
- and()
- antoi()
- before()
- ceil()
- change()
- close()
- crop()
- equals()
- exp()
- flatten()
- float()
- floor()
- int()
- isnothing()
- itoan()
- length()
- log()
- log10()
- match()
- not()
- open()
- or()
- random()
- read()
- readline()
- sign()
- status()
- statustext()
- substr()
- system()
- time()
- tolower()
- toupper()
- typeof()
- write()
- writeline()
- xname()
- xor()
- Metabefehle
- Rückruf-Prozeduren
- Report-Objekte
- Anhang