4D v16.3Find in sorted array |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v16.3
Find in sorted array
Find in sorted array
Die Funktion Find in sorted array gibt wahr zurück, wenn mindestens ein Element im sortierten Array zum Parameter Wert passt. Sie gibt optional auch die Position des Elements zurück. Im Gegensatz zu Find in array funktioniert Find in sorted array nur mit einem sortierten Array und gibt außerdem die Position der Vorkommen an. So lassen sich auch Elemente einfügen, wenn keine Vorkommen gefunden werden. Das Array muss bereits sortiert und in derselben Reihenfolge sein, wie im Parameter > oder < angegeben wurde, d.h. "größer als" für aufsteigende und "kleiner als" für absteigende Reihenfolge. Andernfalls ist das Suchergebnis u.U. nicht korrekt. Find in sorted array nutzt die Sortierung und einen binären Suchalgorithmus, was bei umfangreichen vorsortierten Arrays in der Regel effektiver ist. Weitere Informationen dazu finden Sie unter Wikipedia, binäre Suche. In folgenden Fällen ignoriert die Funktion die Sortierrichtung und arbeitet wie die Funktion Find in array (sequentielle Suche, gibt für ErstePos und LetztePos -1 zurück, wenn Wert nicht gefunden wird):
Gibt die Funktion False zurück, kann der in ErstePos zurückgegebene Wert an INSERT IN ARRAY übergeben werden, um den Wert in das bereits vorsortierte Array einzufügen. Das läuft schneller, als erst einen neuen Eintrag ans Ende des Array zu setzen und dann SORT ARRAY aufzurufen, um es an die richtige Stelle zu bewegen. Die in LetztePos und ErstePos zurückgegebenen Werte lassen sich miteinander kombinieren, um jedes Element des Arrays zu durchlaufen, das zu Wert passt (mit einer For...End for Schleife) oder um die Anzahl der Vorkommen zu finden (wie auch mit dem Befehl Count in array, nur schneller). Bei Bedarf einen Wert einfügen und dabei das sortierte Array beibehalten: C_LONGINT($pos) Die Anzahl der Vorkommen von Strings finden, die mit "test" beginnen und einen String erstellen, der diese Elemente zusammenfasst: C_LONGINT($posFirst ;$posLast)
Siehe auch
|
EIGENSCHAFTEN
Produkt: 4D GESCHICHTE
Erstellt: 4D v14 R4 ARTIKELVERWENDUNG
4D Programmiersprache ( 4D v16) |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||