WikiDer > Lineare Suche

Lineair zoeken

In dem Informatik ist lineare Suche (oder sequentielle Suche) a Suchalgorithmus auf eine Menge Termine (meist Listen) suchen. Es Algorithmus beginnt beim ersten Element in einer Liste und untersucht jedes nachfolgende Element, bis das gewünschte Element gefunden ist.

Im schlimmsten Fall, schlimmsten Fall, alle Elemente müssen betrachtet werden; die benötigte Zeit ist daher Ö(n) wo nein ist die Anzahl der Elemente in der Liste. In dem I'm besten fall das gesuchte Element ist das erste Element in der Liste, daher ist nur 1 Vergleich erforderlich. Wenn die Elemente in der Liste zufällig verteilt sind, gibt es Mittelwerte nein/2 Gleichungen, die benötigt werden, um das Element zu finden.

Die lineare Suche kann verwendet werden, um a . zu finden unsortiert Suchliste. Eine lange sortierte Liste zu durchsuchen ist Halbierung (binäre Suche) am effizientesten. wenn nein groß, kann es effizienter sein, die Liste zuerst zu sortieren (mit a Sortieralgorithmus) und verwenden Sie dann die binäre Suche anstelle der linearen Suche. Ein anderer Weg ist a Hash-tabelle und finde Werte darin.

Operation

Beim Durchlaufen der Liste wird das erste Element gestartet. Wenn dieses Element nicht das gesuchte Element ist, sucht der Algorithmus nach dem nächsten Element. Somit wird die gesamte Liste durchlaufen, bis sie gefunden wird (oder nicht, wenn das Element nicht in der Liste enthalten ist). Die Anzahl der Operationen ist also (im schlimmsten Fall) proportional zur Anzahl der Elemente in der Liste, nein. Dies ist eine Funktion ersten Grades oder eine Gerade, was auch immer der Begriff ist linear erklärt.

Im Pseudocode ist die lineare Suche in Liste l wie folgt:

für jedes Element in der Liste lwenn Element == gesuchtes Element Rückkehr fand esRückkehr nicht gefunden

Implementierung

Im nächsten Implementierungen die Liste {1, 9, 2, 3, 5, 6} wird durchsucht, um zu sehen, ob '3' auftritt.

Umsetzung in C

intaufführen[]={1,9,2,3,5,6};intwollte=3;intLänge=6;zum(intnein=0;nein<Länge;nein){wenn(aufführen[nein]==wollte){Rückkehrwahr;}}Rückkehrfalsch;

Umsetzung in Haskell

Der nächste Funktion gibt zurück, ob ein Element in einer Liste vorkommt:

Suchliste::[int]->int->boolSuchliste[]_=FalschSuchliste(X:xs)nein|X==nein=wahr|Andernfalls=Suchlistexsnein

Im Beispiel wäre der Aufruf dieser Funktion: Suchliste [1,9,2,3,5,6] 3

Umsetzung in VBScript

Die folgende Funktion gibt einen booleschen Wert zurück, der wahr ist, wenn das Element in der Liste enthalten ist

FunktionSuchliste(arrList,intSuche)zumich=0zuUBound(arrList)wennarrList(ich)=intSuchedannRückkehrwahrEndewennNächsterRückkehrfalschEndeFunktion

Umsetzung in C#

statischLeereMain(Schnur[]args){Byte[]Tabelle={4,8,2,6,7};Bytewollte=7;wenn(GesuchtGefunden(Tabelle,wollte)){Konsole.schreiben("Fand es");}sonst{Konsole.schreiben("Nicht gefunden");}}PrivatgeländeboolGesuchtGefunden(Byte[]Tabelle,Bytewollte){zum(Byteich=0;ich<Tabelle.Länge;ich  ){wenn(Tabelle[ich]==wollte){Rückkehrwahr;}}Rückkehrfalsch;}/*GesuchtGefunden*/

Siehe auch