BLATT   >   Grundlagen   >   C-Library Arbeitsmaterialien  |  Grundlagen  |  ÖH-Wahlen  |  Statistiken  |  Unirecht  
    ▸ Übersichten       ▸ Astronomie       ▸ C-Library       ▸ Digitales       ▸ Mathematik       ▸ Periodensystem
Übersichten
    • Größenvorsätze
    • SI-Basisgrößen
    • abgeleitete Größen
    • Konstanten
    • sonstige Einheiten
    • Greek Chars
    • Einheitskonten
    • Funktionsgrafik
    • Wellenformen
    • Zeichensatz

Astronomie
    • Astrophysik
    • Sonnensystem
    • Sternenklassen

C-Library
    • math.h
    • stdio.h
    • stdlib.h
    • string.h
    • time.h

Digitales
    • Aussagelogik
    • Flip-Flops
    • Decoder

Mathematik
    • Algebra
    • Geometrie
    • Trigonometrie
    • Differenzieren
    • Integrieren

Periodensystem
    • Übersicht
    • alphabetisch
    • Aggregatzustand
    • Metall-Eigenschaft
    • Säure-Eigenschaft

Wörterbücher
C-Library

stdlib.h     bsearch     binäre Suche in einem Array


Format:void* bsearch (const void * key, const void * base, size_t num, size_t width, int (*fncompare)(const void *, const void * ) );
 
Bedeutung:Binäre Suche in einem Feld mit aufsteigend sortierten Elementen. Die Objekte werden mit Zeiger angesprochen.
Parameter:key: Zeiger auf ein Objekt, welches den Suchbegriff enthält.
base: Zeiger auf den zu dursuchenden Array.
num: Anzahl der Elemente im zu durchsuchenden Array.
width: Größe der Elemente.
fncompare: Vergleichsfunktion (siehe Tabelle)
Rückgabewert:    Bei Erfolg einen Zeiger auf ein Array mit dem Ergebnis, ansonsten NULL.


Vergleichsfunktion-Tabelle

Deklaration: int fncompare (const void * elem1, const void * elem2 );

<0*elem1 < *elem2
  0*elem1 == *elem2  
>0  *elem1 > *elem2


Beispiel:

#include <stdio.h>
#include <stdlib.h>
int values[] = { 10, 20, 25, 40, 90, 100 };

int compare (const void * a, const void * b)
{
    return ( *(int*)a - *(int*)b );
}

int main ()
{
    int * i;
    int key = 40;
    i = (int*) bsearch (&key, values, 6, sizeof (int), compare);
    if (i != NULL)
        printf ("%d ist im Array vorhanden.\n", *i);
    else
        printf ("%d ist im Array nicht vorhanden.\n", key);
    return 0;
}