Zum Inhalt springen

Algorithmen und Datenstrukturen in C/ Lineare Suche

Aus Wikibooks
Wikipedia hat einen Artikel zum Thema:
Lineare Suche

Die lineare Suche (oder auch sequentielle Suche) ist der einfachste Suchalgorithmus überhaupt. Es wird ein Element in einer Liste oder einem Array mit n Elementen gesucht. Dabei ist irrelevant, ob der Array bereits sortiert ist oder nicht.

Der Suchaufwand wächst linear mit der Anzahl der Elemente. Wenn die Daten zufallsverteilt sind, dann werden im Schnitt n/2 Vergleichsoperationen benötigt. Im besten Fall ist gleich das erste Element der Liste dasjenige, das man sucht, im schlechtesten ist es das letzte.

Wenn die Anzahl der Elemente in einer Liste klein ist, dann ist es oft auch das effizienteste Verfahren.

Implementierung

[Bearbeiten]

Die Suche in einer Liste von Integer-Werten wird wie folgt definiert:

int linearSearch(int key, int *array, int length) {
    int i;

    for (i = 0; i < length; i++)
        if (array[i] == key)
            return i;

    return -1;
}

Beschreibung

[Bearbeiten]

Parameter

[Bearbeiten]

Die Funktion benötigt drei Parameter. Der erste Parameter "key" ist die Zahl, nach der gesucht wird. Der zweite Parameter ist ein Zeiger auf das Array, in dem die Elemente stehen. Der dritte Parameter "length" steht für die Anzahl der Elemente im Array.

Rückgabewert

[Bearbeiten]

Der Rückgabewert ist ein Integer. Dieser ist die Stelle im Array, an dem der gesuchte Wert das erste Mal gefunden wird. Wenn die Suche erfolglos abgeschlossen wird, wird -1 zurück gegeben.