Lineare Suche

Lineare Suche

Lineare Suche ist ein Algorithmus, der auch unter dem Namen sequentielle Suche bekannt ist. Er ist der einfachste Suchalgorithmus überhaupt.

Die Aufgabe besteht darin, ein Element in einer Liste oder einem Array mit n Elementen zu finden. Man geht dazu die Liste Element für Element durch, bis man es gefunden hat. Der Suchaufwand wächst linear mit der Anzahl der Elemente in der Liste.

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.

Die effizientere Binäre Suche kann nur bei geordneten Listen benutzt werden.

Für ungeordnete Listen existiert mit Lazy Select noch ein randomisierter Algorithmus, der mit relativ hoher Wahrscheinlichkeit das x-te Element einer Liste bzgl. einer Ordnung schneller als in linearer Zeit finden kann.

Inhaltsverzeichnis

Implementierung in Pseudocode

BEGINN LinearSearch

  EINGABE: (S)uchschlüssel, (A)rray

  VARIABLE: N = Anzahl Elemente im Array 'A'
  VARIABLE: SucheErfolgreich = falsch
  VARIABLE: i = 0

  FÜR i BIS N ODER SucheErfolgreich
    WENN A[i] = S
    DANN SucheErfolgreich = wahr

  WENN SucheErfolgreich = wahr
  DANN AUSGABE: i
  SONST AUSGABE: Suche nicht erfolgreich

ENDE

Beispielimplementierung in Ruby

 def Lineare_suche(datenArray,wert)
    for i in datenArray
        return true if i == wert;
    end
    return false
 end

Beispielimplementierung in Objective CAML

 let rec linsuche = function
     ([],a) -> false
     | (x::t,a) -> if x = a then true else linsuche(t,a);;

Beispielimplementierung in Java

Das Beispiel gibt den Wert -1 zurück, wenn das gesuchte Element nicht im Array „daten“ vorhanden ist. Ansonsten gibt es die Position des Elementes zurück.

public static int lineareSuche(final int gesucht, final int[] daten) {
    for (int i = 0; i < daten.length; i++) {
        if (daten[i] == gesucht) {
            return i;
        }
    }
    return -1;
}

Beispielimplementierung in Python

Findet alle Suchschlüssel in der Liste.

def lineare_suche(liste, gesucht):
    idxs = []
    for index, element in enumerate(liste):
        if element == gesucht:
            idxs.append(index)
    return idxs
# bzw. 
lineare_suche = lambda l,g : [i for i,e in enumerate(l) if g == e]

Findet erstes Vorkommen des Suchschlüssels in einer Liste.

def lineare_suche(liste, gesucht):
    for index, element in enumerate(liste):
        if element == gesucht:
            return index
# bzw. gibt es schon
lineare_suche = lambda l,g : l.index(g) if g in l else None

Siehe auch


Wikimedia Foundation.

Игры ⚽ Поможем решить контрольную работу

Schlagen Sie auch in anderen Wörterbüchern nach:

  • lineare Suche —   (sequenzielle Suche), die einfachste aller Suchmethoden in Datenbanken. Hierbei wird der Reihe nach jeder Datensatz mit dem Suchbegriff verglichen, so lange, bis ein Datensatz mit den gesuchten Merkmalen gefunden oder die Liste der Datensätze… …   Universal-Lexikon

  • Lineare partielle Information — (LPI) ist eine lineare Modellierungsmethode für die praxisnahen Entscheidungen, die auf zuvor unscharfen Informationen basieren. Die Theorie wurde 1970 von Edward Kofler in Zürich entwickelt. Begriffsbildungen, Eigenschaften, Vorstellungen oder… …   Deutsch Wikipedia

  • Sequentielle Suche — Lineare Suche ist ein Algorithmus, der auch unter dem Namen sequenzielle Suche bekannt ist. Er ist der einfachste Suchalgorithmus überhaupt. Die Aufgabe besteht darin, ein Element in einer Liste oder einem Array mit n Elementen zu finden. Man… …   Deutsch Wikipedia

  • Sequenzielle Suche — Lineare Suche ist ein Algorithmus, der auch unter dem Namen sequenzielle Suche bekannt ist. Er ist der einfachste Suchalgorithmus überhaupt. Die Aufgabe besteht darin, ein Element in einer Liste oder einem Array mit n Elementen zu finden. Man… …   Deutsch Wikipedia

  • Lineare Optimierung (Spieltheorie) — Die lineare Optimierung wird im Rahmen der Spieltheorie zur Ermittlung optimal gemischter Strategien genutzt. Das Verfahren ist insbesondere bei sehr komplizierten Nullsummenspielen anwendbar und garantiert darüber hinaus bei Spielen mit mehr als …   Deutsch Wikipedia

  • Lineare Liste — Verkettete Listen gehören zu den dynamischen Datenstrukturen, die eine Speicherung von einer im Vorhinein nicht bestimmten Anzahl von miteinander in Beziehung stehenden Werten einfacher oder zusammengesetzter Datentypen erlauben. Sie werden durch …   Deutsch Wikipedia

  • Blinde Suche — Die Informatik bezeichnet mit Suchverfahren oder Suchalgorithmus einen Algorithmus, der in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Man unterscheidet einfache und heuristische Suchalgorithmen. Einfache… …   Deutsch Wikipedia

  • Uninformierte Suche — Die Informatik bezeichnet mit Suchverfahren oder Suchalgorithmus einen Algorithmus, der in einem Suchraum nach Mustern oder Objekten mit bestimmten Eigenschaften sucht. Man unterscheidet einfache und heuristische Suchalgorithmen. Einfache… …   Deutsch Wikipedia

  • Binäre Suche — Die binäre Suche ist ein Algorithmus, der auf einem Feld sehr effizient ein gesuchtes Element findet bzw. eine zuverlässige Aussage über das Fehlen dieses Elementes liefert. Voraussetzung ist, dass die Elemente in dem Feld entsprechend einer… …   Deutsch Wikipedia

  • Boolesche Suche — Die binäre Suche ist ein Algorithmus, der auf einem Array recht schnell ein gesuchtes Element findet bzw. eine zuverlässige Aussage über das Fehlen dieses Elementes liefert. Voraussetzung ist, dass die Elemente des Array in einer dem Suchbegriff… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”