Unterschied zwischen linearer Suche und binärer Suche
Inhalt
Lineare Suche und binäre Suche sind die beiden Methoden, die in Arrays für verwendet werden suche die Elemente. Beim Suchen wird ein Element in der Liste der Elemente gefunden, die in einer beliebigen Reihenfolge oder zufällig gespeichert sind.
Der Hauptunterschied zwischen der linearen Suche und der binären Suche besteht darin, dass die Suche nach einem Element aus der sortierten Liste von Elementen weniger Zeit in Anspruch nimmt. Daraus wird geschlossen, dass die Effizienz der binären Suchmethode größer ist als die der linearen Suche.
Ein weiterer Unterschied zwischen den beiden besteht darin, dass eine Voraussetzung für die binäre Suche besteht, d. H., Dass die Elemente vorhanden sein müssen sortiert während der linearen Suche gibt es keine solche Voraussetzung. Obwohl beide Suchmethoden unterschiedliche Techniken verwenden, die unten diskutiert werden.
- Vergleichstabelle
- Definition
- Hauptunterschiede
- Fazit
Vergleichstabelle
Vergleichsbasis | Lineare Suche | Binäre Suche |
---|---|---|
Zeitliche Komplexität | AUF) | O (log 2 N) |
Beste Fallzeit | Erstes Element O (1) | Mittelelement O (1) |
Voraussetzung für ein Array | Nicht erforderlich | Array muss in sortierter Reihenfolge sein |
Schlechtester Fall für N Elemente | N Vergleiche sind erforderlich | Kann erst nach loggen schließen2 N Vergleiche |
Kann am implementiert werden | Array und verknüpfte Liste | Kann nicht direkt in verknüpfte Listen implementiert werden |
Operation einfügen | Einfach am Ende der Liste einfügen | Verarbeitung erforderlich, um eine sortierte Liste an der richtigen Stelle einzufügen. |
Algorithmus-Typ | Iterativ in der Natur | Teilen und erobern Sie die Natur |
Nützlichkeit | Einfach zu bedienen und keine bestellten Elemente erforderlich. | Trotzdem sollten knifflige Algorithmen und Elemente in der richtigen Reihenfolge angeordnet werden. |
Zeilen von Code | Weniger | Mehr |
Definition der linearen Suche
Bei einer linearen Suche wird jedes Element eines Arrays nacheinander in einer logischen Reihenfolge abgerufen und überprüft, ob es sich um ein gewünschtes Element handelt oder nicht. Eine Suche schlägt fehl, wenn auf alle Elemente zugegriffen wird und das gewünschte Element nicht gefunden wird. Im schlimmsten Fall muss die Zahl eines durchschnittlichen Falls möglicherweise die Hälfte der Größe des Arrays (n / 2) abgetastet werden.
Daher kann die lineare Suche als die Technik definiert werden, die das Array sequentiell durchläuft, um das gegebene Objekt zu lokalisieren. Das folgende Programm veranschaulicht die Suche nach einem Element des Arrays mit search.
Effizienz der linearen Suche
Der Zeitaufwand oder die Anzahl der Vergleiche, die beim Durchsuchen eines Datensatzes in einer Suchtabelle durchgeführt werden, bestimmen die Effizienz der Technik. Befindet sich der gewünschte Datensatz an der ersten Position der Suchtabelle, wird nur ein Vergleich durchgeführt. Wenn der gewünschte Datensatz der letzte ist, müssen n Vergleiche durchgeführt werden. Wenn der Datensatz in der Suchtabelle enthalten sein soll, beträgt die Anzahl der Vergleiche im Durchschnitt (n + 1/2). Der schlechteste Wirkungsgrad dieser Technik ist O (n) steht für die Ausführungsreihenfolge.
C Programm um ein Element mit linearer Suchtechnik zu suchen.
#umfassen Die binäre Suche ist ein äußerst effizienter Algorithmus. Diese Suchtechnik nimmt weniger Zeit in Anspruch, um das gegebene Objekt in möglichst geringen Vergleichen zu durchsuchen. Um die binäre Suche durchzuführen, müssen wir zuerst die Array-Elemente sortieren. Die Logik hinter dieser Technik ist unten angegeben: Es können drei Fälle auftreten: Wiederholen Sie dieselben Schritte, bis ein Element im Suchbereich gefunden wurde oder erschöpft ist. Bei diesem Algorithmus wird der Suchbereich jedes Mal kleiner. Daher beträgt die Anzahl der Vergleiche höchstens log (N + 1). Daher ist es im Vergleich zur linearen Suche ein effizienter Algorithmus, aber das Array muss vor der binären Suche sortiert werden. C Programm um ein Element mit binärer Suchtechnik zu finden. #umfassen Je nach Anwendung können sowohl lineare als auch binäre Suchalgorithmen nützlich sein. Wenn ein Array die Datenstruktur ist und die Elemente in sortierter Reihenfolge angeordnet sind, wird die binäre Suche bevorzugt schnellsuche. Wenn die verknüpfte Liste die Datenstruktur ist, unabhängig davon, wie die Elemente angeordnet sind, wird die lineare Suche übernommen, da der Algorithmus für die binäre Suche nicht direkt implementiert werden kann. Der typische binäre Suchalgorithmus kann nicht auf verknüpfte Listen angewendet werden, da verknüpfte Listen dynamischer Natur sind und nicht bekannt ist, wo das mittlere Element tatsächlich zugewiesen ist. Daher ist es erforderlich, die Variation des binären Suchalgorithmus zu entwerfen, die auch für verknüpfte Listen verwendet werden kann, da die binäre Suche schneller ausgeführt wird als eine lineare Suche.Definition der binären Suche
Fazit