Was ist binäre Suche in Java? Wie implementiere ich es?



Die binäre Suche in Java ist ein Suchalgorithmus, der die Position eines Zielwerts innerhalb eines sortierten Arrays ermittelt. In diesem Artikel werde ich Ihnen anhand eines Beispiels erklären, wie Sie es implementieren.

Such- und Sortieralgorithmen sind die beliebte Algorithmen in beliebigen Programmiersprachen. Sie sind die Basis, um die Grundlagen der Programmierung zu verstehen. Ein solcher beliebter Suchalgorithmus ist die binäre Suche in . In diesem Artikel werde ich Ihnen alles über die Implementierung erzählen.

Die folgenden Themen werden in diesem Artikel behandelt:





Lass uns anfangen!

Was ist binäre Suche?

Binäre Suche in ist ein Suchalgorithmus, der die Position eines Zielwerts innerhalb einer sortierten findet Array . Binäre Suche vergleicht den Zielwert mit dem mittleren Element des Arrays. Esfunktioniert nur mit einer sortierten Menge von Elementen. Um die binäre Suche für eine Sammlung zu verwenden, muss die muss zuerst sortiert werden.



Binäres Suchprogramm in Java - Binäre Suche in Java - EdurekaWenn die Wird verwendet, um Operationen an einem sortierten Satz auszuführen, kann die Anzahl der Iterationen immer auf der Grundlage des gesuchten Werts reduziert werden. Sie können im obigen Schnappschuss sehen, wie man das findet mittleres Element . Die Analogie der binären Suche besteht darin, die Informationen zu verwenden, nach denen das Array sortiert ist, und die zeitliche Komplexität auf zu reduzieren O (log n) .

Implementieren des binären Suchalgorithmus

Schauen wir uns den folgenden Pseudocode an, um ihn besser zu verstehen.

Prozedur binary_search Ein & larr sortiertes Array n & larr Größe des zu durchsuchenden Arrays x & larr Wert Setzen Sie niedrig = 1 Setzen Sie hoch = n, während x nicht gefunden wird, wenn hoch

Erläuterung:



Schritt 1: Vergleichen Sie zunächst x mit dem mittleren Element.

Schritt 2: Wenn x mit dem mittleren Element übereinstimmt, müssen Sie den mittleren Index zurückgeben.

Schritt 3: Sonst, wenn x größer als das mittlere Element ist, kann x nur in der rechten halben Anordnung nach dem mittleren Element liegen. Daher wiederholen Sie die rechte Hälfte.

Schritt 4: Andernfalls, wenn (x kleiner ist), wiederholen Sie dies für die linke Hälfte.

So müssen Sie nach dem Element im angegebenen Array suchen.

wie man Ersetzen in Java verwendet

Lassen Sie uns nun sehen, wie ein binärer Suchalgorithmus rekursiv implementiert wird. Das folgende Programm zeigt dasselbe.

Rekursive binäre Suche

öffentliche Klasse BinarySearch {// Java-Implementierung der rekursiven binären Suche // Gibt den Index von x zurück, wenn er in arr [l..h] vorhanden ist, andernfalls -1 int binarySearch (int a [], int l, int h, int x) {if (h> = l) {int mid = l + (h - l) / 2 // Wenn das Element in der Mitte selbst vorhanden ist, wenn (a [mid] == x) mid zurückgibt // If-Element kleiner als mid ist, kann es nur im linken Subarray vorhanden sein, wenn (a [mid]> x) binarySearch zurückgibt (arr, l, mid - 1, x) // Andernfalls kann das Element nur im rechten Subarray vorhanden sein, um binarySearch zurückzugeben (arr, mid + 1, h, x)} // Wir erreichen hier, wenn das Element im Array nicht vorhanden ist. return -1} public static void main (String args []) {BinarySearch ob = new BinarySearch () int a [] = {20, 30, 40, 10, 50} int n = a.Länge int x = 40 int res = ob.binarySearch (a, 0, n - 1, x) if (res == -1) System.out .println ('Element nicht vorhanden') else System.out.println ('Element am Index gefunden' + res)}}

Beim Ausführen des obigen Programms wird das am jeweiligen Index vorhandene Element gefunden

Element bei Index 2 gefunden

Dies bringt uns zum Ende der binären Suche in Java Artikel. Ich hoffe, Sie fanden es informativ und haben Ihnen beim Verständnis geholfen .

Besuche die von Edureka, einem vertrauenswürdigen Online-Lernunternehmen mit einem Netzwerk von mehr als 250.000 zufriedenen Lernenden auf der ganzen Welt. Wir sind hier, um Ihnen bei jedem Schritt auf Ihrer Reise zu helfen, damit Sie neben diesem Java-Interview auch Fragen stellen können. Wir entwickeln einen Lehrplan, der für Studenten und Fachleute konzipiert ist, die Java-Entwickler werden möchten. Der Kurs soll Ihnen einen Vorsprung in die Java-Programmierung verschaffen und Sie sowohl für grundlegende als auch für fortgeschrittene Java-Konzepte sowie für verschiedene Java-Frameworks wie Hibernate & Spring schulen.

Falls Sie bei der Implementierung von Binary Search in auf Schwierigkeiten stoßen , bitte erwähne es in den Kommentaren unten und wir werden uns frühestens bei Ihnen melden.