Your Browser is not longer supported

Please use Google Chrome, Mozilla Firefox or Microsoft Edge to view the page correctly
Loading...

{{viewport.spaceProperty.prod}}

bsearch - sortierten Vektor binär durchsuchen

&pagelevel(4)&pagelevel

Definition

#include <stdlib.h>

void *bsearch(const void *key, const void *base, size_t nel,
                             size_t width, int (*compar) (const void *, const void *));

Beschreibung

bsearch() ist eine binäre Suchfunktion. bsearch() durchsucht nel Elemente eines Vektors base nach dem Wert im Datenelement key. Jedes Vektorelement ist width Bytes lang.

compar() ist eine vom Benutzer bereitzustellende Vergleichsfunktion, die von bsearch() jeweils mit zwei Argumenten aufgerufen wird, einem Zeiger auf key und einem Zeiger auf ein Vektorelement.

compar() muss eine ganze Zahl liefern, die kleiner, gleich oder größer als null ist, je nachdem, ob das erste Argument kleiner, gleich oder größer als das zweite Argument ist. Der Vektor muss die Elemente in der folgenden Reihenfolge enthalten: erst alle Elemente, die kleiner als key sind, dann alle Elemente, die gleich und schließlich alle Elemente, die größer als key sind.

Returnwert

Zeiger auf das gesuchte Element

 


bei Erfolg. Wenn das gesuchte Element mehrmals vorhanden ist, ist nicht festgelegt, auf welches Element der Zeiger zeigt.

 

Nullzeiger

wenn kein Element gefunden wurde.

Hinweise

Die Vergleichsfunktion muss nicht jedes Byte vergleichen, deshalb können die Elemente zusätzlich zu den Vergleichswerten beliebige Daten enthalten.

In der Praxis sind die Elemente des Vektors meist entsprechend der Vergleichsfunktion sortiert.

Wenn die Anzahl von Elementen im Vektor kleiner als die für den Vektor reservierte Größe ist, sollte nel die kleinere Zahl sein.

BS2000
Wird für die Sortierung des Vektors z.B. die Funktion qsort() verwendet, ist es sinnvoll, dieselbe Vergleichsfunktion compar() zu verwenden, die von bsearch() benutzt wird. Die aktuellen Argumente von qsort() sind dann Zeiger auf zwei zu vergleichende Vektorelemente. (Ende)

Siehe auch

hsearch(), lsearch(), qsort(), tsearch(), stdlib.h.