bsearch, qsort selbst bauen

  1. Es soll die Funktion bsearch() aus der Standardbibliothek nachgebildet werden.

    Beispielsweise soll die Funktion:

    void msearch( void *suchschluessel,
                  void *feld,
                  size_t anzahl,
                  size_t elementgroesse,
                  int (*vergleichsfunktion)( const void *p1,
                                             const void *p2
                                             )
                  );
    
    gebaut werden, die sich wie bsearch() verhält.

    Ob die neue Funktion tatsächlich binäre Suche verwendet, ist zweitrangig.

  2. Analog dazu ist qsort() der Standardbibliothek nachzubilden.

    Hierin müssen zum Sortieren Feldelemente umkopiert werden; aber innerhalb der Funktion ist der Datentyp der Elemente unbekannt. Deshalb kann man nicht mit einer Zuweisung (Operator =) arbeiten. Als Alternative bietet sich die Funktion memcpy() an. Unter Linux oder Unix siehe dazu:
    man 3 memcpy

Themen:

Lösung siehe bsearch, qsort selbst bauen.



AnyWare@Wachtler.de