Lineare und binäre Suchalgorithmen erklärt

Lineare und binäre Suchalgorithmen erklärt

Die Fähigkeit, nach bestimmten Daten zu suchen, ist ein wichtiger Aspekt der Informatik. Suchalgorithmen werden verwendet, um nach einem bestimmten Element in einem Datensatz zu suchen.





Algorithmen geben ein boolesches Ergebnis (wahr oder falsch) an eine Suchanfrage zurück. Sie können auch geändert werden, um die relative Position des gefundenen Werts anzugeben.





In diesem Artikel konzentrieren sich die Algorithmen darauf, zu bestimmen, ob ein Wert vorhanden ist.





Lineare Suchalgorithmen

Die lineare Suche wird auch als sequentielle Suche bezeichnet. Bei dieser Art der Suche wird jeder Wert in einer Liste nacheinander auf geordnete Weise durchsucht, während geprüft wird, ob der gewünschte Wert vorhanden ist.

Der Algorithmus prüft Wert für Wert, bis er den gesuchten Wert findet oder keine Werte mehr zum Suchen haben. Wenn die zu suchenden Werte ausgehen, bedeutet dies, dass Ihre Suchanfrage nicht in der Liste vorhanden ist.



Ein sequentieller Suchalgorithmus nimmt eine Liste von Werten und das gewünschte Element in der Liste als Parameter auf. Das Rückgabeergebnis wird initialisiert als Falsch und wird sich ändern zu Wahr wenn der gewünschte Wert gefunden ist.

Sehen Sie sich die folgende Python-Implementierung als Beispiel an:





def linearSearch(mylist, item):
found = False
index = 0
while index if mylist[index] == item:
found = True
else:
index = index+1
return found

Algorithmusanalyse

Das beste Szenario tritt ein, wenn das gewünschte Element das erste auf der Liste ist. Der schlimmste Fall tritt ein, wenn das gewünschte Element das letzte auf der Liste ist (das n-te Element). Daher beträgt die Zeitkomplexität für die lineare Suche O(n).

Das durchschnittliche Fallszenario im obigen Algorithmus ist n/2.





Verwandt: Was ist Big-O-Notation?

Es ist wichtig zu wissen, dass der verwendete Algorithmus davon ausgeht, dass ihm eine zufällige Liste von Elementen bereitgestellt wird. Das heißt, die Listenelemente sind in keiner bestimmten Reihenfolge.

billige Orte, um den Bildschirm reparieren zu lassen

Angenommen, die Elemente befinden sich in einer bestimmten Reihenfolge, sagen wir vom kleinsten zum größten. Es wäre möglich, einige Vorteile bei der Berechnung zu erzielen.

Nehmen Sie ein Beispiel für die Suche nach 19 in der angegebenen Liste: [2, 5, 6, 11, 15, 18, 23, 27, 34]. Nach Erreichen von 23 wird klar, dass das gesuchte Element nicht in der Liste vorhanden ist. Daher wäre es nicht mehr wichtig, die restlichen Listenelemente weiter zu durchsuchen.

Binäre Suchalgorithmen

Sie haben gesehen, wie eine geordnete Liste den Rechenaufwand reduzieren kann. Der binäre Suchalgorithmus nutzt diese Effizienz noch stärker aus, als eine geordnete Liste einführt.

Der Algorithmus beginnt damit, dass er einen mittleren Wert einer geordneten Liste nimmt und prüft, ob es der gewünschte Wert ist. Ist dies nicht der Fall, wird geprüft, ob der Wert kleiner oder größer als der gewünschte Wert ist.

Wenn es weniger ist, müssen Sie die untere Hälfte der Liste nicht überprüfen. Andernfalls, wenn es größer ist, wird es in die obere Hälfte der Liste verschoben.

Verwandte: Was ist Rekursion und wie wird sie verwendet?

Unabhängig davon, welche Unterliste (links oder rechts) gewählt wird, wird erneut der Mittelwert bestimmt. Der Wert wird erneut überprüft, ob es sich um den erforderlichen Wert handelt. Ist dies nicht der Fall, wird geprüft, ob er kleiner oder größer als der angeforderte Wert ist.

installiere google play on fire hd 10

Dieser Vorgang wird wiederholt, bis ein Wert gefunden wird, falls er vorhanden ist.

Die folgende Python-Implementierung ist für den binären Suchalgorithmus.

def binarySearch(mylist, item):

low = 0
high = len(mylist) - 1
found = False
while low <= high and not found: mid = (low + high) // 2
if mylist[mid] == item:found = True
elif item else:low = mid + 1
return found

Algorithmusanalyse

Das Best-Case-Szenario tritt ein, wenn sich das gewünschte Element als mittleres Element herausstellt. Das Worst-Case-Szenario ist jedoch nicht so einfach. Folgen Sie der folgenden Analyse:

Nach dem ersten Vergleich bleiben n/2 Items übrig. Nach dem zweiten bleiben n/4 Elemente übrig. Nach dem dritten, n/8.

Beachten Sie, dass sich die Anzahl der Elemente halbiert, bis sie n/2i erreichen, wobei i die Anzahl der Vergleiche ist. Nach all der Aufteilung haben wir am Ende nur 1 Artikel.

Dies impliziert:

n/2i=1 Daher ist die binäre Suche O(log n).

Weiter zur Sortierung

Bei der binären Suche haben wir einen Fall betrachtet, in dem das angegebene Array bereits geordnet war. Angenommen, Sie haben einen ungeordneten Datensatz und möchten eine binäre Suche durchführen. Was würden Sie tun?

Die Antwort ist einfach: sortieren. Es gibt eine Reihe von Sortiertechniken in der Informatik, die gut erforscht sind. Eine dieser Techniken, die Sie mit dem Studium beginnen können, ist der Auswahl-Sortier-Algorithmus, während wir auch viele Anleitungen zu anderen Bereichen haben.

Teilen Teilen Tweet Email So verwenden Sie die Auswahlsortierung

Die Sortierung der Auswahl ist für Anfänger etwas schwierig zu verstehen, aber es ist nicht allzu schwierig, wenn Sie erst einmal den Schwung der Dinge haben.

Weiter lesen
Verwandte Themen
  • Programmierung
  • Technologie erklärt
  • Programmierung
  • Algorithmen
  • Datenanalyse
Über den Autor Jerome Davidson(22 Artikel veröffentlicht)

Jerome ist Staff Writer bei MakeUseOf. Er behandelt Artikel über Programmierung und Linux. Er ist auch ein Krypto-Enthusiast und behält die Krypto-Industrie immer im Auge.

Mehr von Jerome Davidson

Abonniere unseren Newsletter

Abonnieren Sie unseren Newsletter für technische Tipps, Rezensionen, kostenlose E-Books und exklusive Angebote!

Klicken Sie hier, um sich zu abonnieren