Top-Datenstrukturen und -Algorithmen in Java, die Sie kennen müssen



Dieser Blog über Datenstrukturen und Algorithmen in Java hilft Ihnen, alle wichtigen Datenstrukturen und Algorithmen in Java zu verstehen.

Wenn ich das wichtigste Thema in der Softwareentwicklung auswählen müsste, wären es Datenstrukturen und Algorithmen. Sie können sich das als grundlegendes Werkzeug vorstellen, das jedem Computerprogrammierer zur Verfügung steht. Während der Programmierung verwenden wir Datenstrukturen Daten zu speichern und zu organisieren, und Algorithmen die Daten in diesen Strukturen zu manipulieren. Dieser Artikel enthält eine detaillierte Übersicht über alle gängigen Datenstrukturen und Algorithmen in damit die Leser gut ausgerüstet werden können.

Nachfolgend sind die in diesem Artikel behandelten Themen aufgeführt:





c ++ Fibonacci-Sequenz

Datenstrukturen in Java

Eine Datenstruktur ist eine Möglichkeit, Daten in einem Computer zu speichern und zu organisieren, damit sie effizient verwendet werden können. Es bietet die Möglichkeit, große Datenmengen effizient zu verwalten. Effiziente Datenstrukturen sind der Schlüssel zum Entwerfen effizienter Algorithmen.

ImIn diesem Artikel „Datenstrukturen und Algorithmen in Java“ werden grundlegende Datenstrukturen behandelt, wie z.



Schauen wir uns jeden einzelnen an.

Lineare Datenstrukturen in Java

Lineare Datenstrukturen in sind diejenigen, deren Elemente sequentiell und so geordnet sind, dass: es nur eines gibt erstes Element und hat nur einen nächstes Element , Es gibt nur eins letztes Element und hat nur einen vorheriges Element , während alle anderen Elemente a haben Nächster und ein Bisherige Element.

Arrays

Ein Array ist eine lineare DatenstrukturDarstellen einer Gruppe ähnlicher Elemente, auf die über den Index zugegriffen wird. Die Größe eines Arrays muss angegeben werden, bevor Daten gespeichert werden. Nachfolgend sind die Eigenschaften eines Arrays aufgeführt:



  • Jedes Element in einem Array hat denselben Datentyp und dieselbe Größe
  • Elemente des Arrays werden an zusammenhängenden Speicherstellen gespeichert, wobei das erste Element an der kleinsten Speicherstelle beginnt
  • Auf Elemente des Arrays kann zufällig zugegriffen werden
  • Die Array-Datenstruktur ist nicht vollständig dynamisch

Arrays - Edureka

Beispielsweise Vielleicht möchten wir, dass ein Videospiel die zehn besten Ergebnisse für dieses Spiel verfolgt. Anstatt zehn verschiedene zu verwenden Variablen Für diese Aufgabe könnten wir einen einzelnen Namen für die gesamte Gruppe verwenden und Indexnummern verwenden, um auf die Highscores in dieser Gruppe zu verweisen.

Verknüpfte Liste

ZU ist eine lineare Datenstruktur mit der Sammlung mehrerer Knoten, wobei eJedes Element speichert seine eigenen Daten und einen Zeiger auf die Position des nächsten Elements. Das letzte Glied in einer verknüpften Liste zeigt auf null und gibt das Ende der Kette an. Ein Element in einer verknüpften Liste heißt a Knoten . Der erste Knoten heißt Kopf .Der letzte Knoten wird aufgerufendas Schwanz .

Arten von verknüpften Listen

Einfach verknüpfte Liste (unidirektional)

Doppelt verknüpfte Liste (bidirektional)

Zirkuläre verknüpfte Liste

Hier ist ein einfaches Beispiel: Stellen Sie sich eine verknüpfte Liste wie eine Kette von Büroklammern vor, die miteinander verknüpft sind. Sie können ganz einfach oben oder unten eine weitere Büroklammer hinzufügen. Es ist sogar schnell, eine in die Mitte einzufügen. Alles, was Sie tun müssen, ist, die Kette in der Mitte zu trennen, die neue Büroklammer hinzuzufügen und die andere Hälfte wieder anzuschließen. Eine verknüpfte Liste ist ähnlich.

Stapel

Stapel, Eine abstrakte Datenstruktur ist eine Sammlung von Objekte die nach dem eingefügt und entfernt werden last-in-first-out (LIFO) Prinzip. Objekte können jederzeit in einen Stapel eingefügt werden, es kann jedoch immer nur das zuletzt eingefügte (dh 'letzte') Objekt entfernt werden.Nachfolgend sind die Eigenschaften eines Stapels aufgeführt:

  • Es ist eine geordnete Liste, in derDas Einfügen und Löschen kann nur an einem Ende durchgeführt werden, das als oben
  • Rekursive Datenstruktur mit einem Zeiger auf das oberste Element
  • Folgt dem last-in-first-out (LIFO) Prinzip
  • Unterstützt zwei grundlegendste Methoden
    • Drücken Sie (e): Fügen Sie das Element e oben auf dem Stapel ein
    • pop (): Entfernen Sie das oberste Element auf dem Stapel und geben Sie es zurück

Praktische Beispiele für den Stapel sind das Umkehren eines Wortes,um die Richtigkeit von zu überprüfen KlammernReihenfolge,Implementierung von Back-Funktionen in Browsern und vielem mehr.

Warteschlangen

sind auch eine andere Art von abstrakter Datenstruktur. Im Gegensatz zu einem Stapel ist die Warteschlange eine Sammlung von Objekten, die gemäß dem eingefügt und entfernt werden first-in-first-out (FIFO) Prinzip. Das heißt, Elemente können zu jedem Zeitpunkt eingefügt werden, aber immer kann nur das Element entfernt werden, das sich am längsten in der Warteschlange befunden hat.Nachfolgend sind die Eigenschaften einer Warteschlange aufgeführt:

  • Oft als die bezeichnet als Erster rein, als erster raus Liste
  • Unterstützt zwei grundlegendste Methoden
    • Enqueue (e): Fügen Sie das Element e an der Rückseite der Warteschlange
    • dequeue (): Entfernen Sie das Element und geben Sie es aus dem zurück Vorderseite der Warteschlange

Warteschlangen werden in der verwendetAsynchrone Datenübertragung zwischen zwei Prozessen, CPU-Planung, Festplattenplanung und anderen Situationen, in denen Ressourcen von mehreren Benutzern gemeinsam genutzt und auf der Basis des First-Come-First-Servers bereitgestellt werden. Als nächstes haben wir in diesem Artikel 'Datenstrukturen und Algorithmen in Java' hierarchische Datenstrukturen.

Hierarchische Datenstrukturen in Java

Binärer Baum

Binärer Baum ist einhierarchische Baumdatenstrukturen, in denen Jeder Knoten hat höchstens zwei Kinder , die als bezeichnet werden linkes Kind und der richtiges Kind . Jeder Binärbaum hat die folgenden Gruppen von Knoten:

  • Stammknoten: Dies ist der oberste Knoten und wird häufig als Hauptknoten bezeichnetweil alle anderen Knoten von der Wurzel aus erreichbar sind
  • Linker Unterbaum, der auch ein Binärbaum ist
  • Rechter Unterbaum, der auch ein Binärbaum ist

Nachfolgend sind die Eigenschaften eines Binärbaums aufgeführt:

  • Ein Binärbaum kann auf zwei Arten durchlaufen werden:
    • Tiefe erste Durchquerung : In der Reihenfolge (Links-Wurzel-Rechts), Vorbestellung (Wurzel-Links-Rechts) und Nachbestellung (Links-Rechts-Wurzel)
    • Breite erste Durchquerung : Level Order Traversal
  • Zeitliche Komplexität der Baumdurchquerung: O (n)
  • Die maximale Anzahl von Knoten auf Ebene 'l' = 2l-1.

Anwendungen von Binärbäumen umfassen:

  • Wird in vielen Suchanwendungen verwendet, in denen Daten ständig eingegeben / verlassen werden
  • Als Workflow zum Zusammenstellen digitaler Bilder für visuelle Effekte
  • Wird in fast jedem Router mit hoher Bandbreite zum Speichern von Routertabellen verwendet
  • Wird auch in drahtlosen Netzwerken und bei der Speicherzuweisung verwendet
  • Wird in Komprimierungsalgorithmen und vielem mehr verwendet

Binärer Haufen

Binary Heap ist ein vollständigerbinärer Baum, die auf die Heap-Eigenschaft antwortet. In einfachen Wortenist eine Variation eines Binärbaums mit den folgenden Eigenschaften:

  • Heap ist ein vollständiger Binärbaum: Ein Baum gilt als vollständig, wenn alle seine Ebenen, außer möglicherweise die tiefsten, vollständig sind. T.Sein Eigentum von Binary Heap macht es geeignet, in einem gelagert zu werden .
  • Folgt der Heap-Eigenschaft: Ein binärer Haufen ist entweder a Min-Heap oder ein Max-Heap .
    • Min. Binärer Haufen: F.oder für jeden Knoten in einem Heap lautet der Wert des Knotens kleiner als oder gleich Werte der Kinder
    • Max Binary Heap: F.oder für jeden Knoten in einem Heap ist der Wert des Knotens größer als oder gleich wie Werte der Kinder

Beliebte Anwendungen von binären Heap gehörenImplementieren effizienter Prioritätswarteschlangen, effizientes Finden der k kleinsten (oder größten) Elemente in einem Array und vielem mehr.

Hash-Tabellen

Stellen Sie sich vor, Sie haben eine Objekt und Sie möchten ihm einen Schlüssel zuweisen, um die Suche sehr einfach zu machen. Um dieses Schlüssel / Wert-Paar zu speichern, können Sie ein einfaches Array wie eine Datenstruktur verwenden, in der Schlüssel (Ganzzahlen) direkt als Index zum Speichern von Datenwerten verwendet werden können. In Fällen, in denen die Schlüssel zu groß sind und nicht direkt als Index verwendet werden können, wird eine als Hashing bezeichnete Technik verwendet.

Beim Hashing werden die großen Schlüssel mithilfe von in kleine Schlüssel umgewandelt Hash-Funktionen . Die Werte werden dann in einer aufgerufenen Datenstruktur gespeichertzu Hash-tabelle. Eine Hash-Tabelle ist eine Datenstruktur, die ein Wörterbuch-ADT implementiert, eine Struktur, die eindeutige Schlüssel Werten zuordnen kann.

Im Allgemeinen besteht eine Hash-Tabelle aus zwei Hauptkomponenten:

  1. Bucket Array: Ein Bucket-Array für eine Hash-Tabelle ist ein Array A der Größe N, wobei jede Zelle von A als 'Bucket' betrachtet wird, dh als Sammlung von Schlüssel-Wert-Paaren. Die ganze Zahl N definiert die Kapazität des Arrays.
  2. Hash-Funktion: Es ist eine beliebige Funktion, die jeden Schlüssel k in unserer Zuordnung auf eine Ganzzahl im Bereich [0, N & minus 1] abbildet, wobei N die Kapazität des Bucket-Arrays für diese Tabelle ist.

Wenn wir Objekte in eine Hashtabelle einfügen, ist es möglich, dass verschiedene Objekte denselben Hashcode haben. Dies nennt man a Kollision . Um mit Kollisionen umzugehen, gibt es Techniken wie Verkettung und offene Adressierung.

Dies sind also einige grundlegende und am häufigsten verwendete Datenstrukturen in Java. Nachdem Sie diese kennen, können Sie sie in Ihrem implementieren . Damit haben wir den ersten Teil dieses Artikels „Datenstrukturen und Algorithmen in Java“ abgeschlossen. Im nächsten Teil werden wir etwas darüber lernenGrundlegende Algorithmen und ihre Verwendung in praktischen Anwendungen wie Sortieren und Suchen, Teilen und Erobern, gierige Algorithmen und dynamische Programmierung.

Algorithmen in Java

In der Vergangenheit als Werkzeug zur Lösung komplexer mathematischer Berechnungen verwendet, sind Algorithmen eng mit der Informatik und insbesondere mit Datenstrukturen verbunden. Ein Algorithmus ist Eine Folge von Anweisungen, die einen Weg zur Lösung eines bestimmten Problems in einem begrenzten Zeitraum beschreibt. Sie werden auf zwei Arten dargestellt:

  • Flussdiagramme - Es ist einvisuelle Darstellung des Kontrollflusses eines Algorithmus
  • Pseudocode - Esist eine Textdarstellung eines Algorithmus, der sich dem endgültigen Quellcode annähert

Hinweis: Die Leistung des Algorithmus wird basierend auf Zeitkomplexität und Raumkomplexität gemessen. Meistens hängt die Komplexität eines Algorithmus vom Problem und vom Algorithmus selbst ab.

Lassen Sie uns die beiden Hauptkategorien von Algorithmen in Java untersuchen:

Sortieralgorithmen in Java

Sortieralgorithmen sind Algorithmen, die Elemente einer Liste in eine bestimmte Reihenfolge bringen. Die am häufigsten verwendeten Ordnungen sind numerische Reihenfolge und lexikografische Reihenfolge. In diesem Artikel 'Datenstrukturen und Algorithmen' werden einige Sortieralgorithmen erläutert.

Blasensortierung in Java

Die Blasensortierung, oft als sinkende Sortierung bezeichnet, ist der einfachste Sortieralgorithmus. Es durchläuft wiederholt die zu sortierende Liste, vergleicht jedes Paar benachbarter Elemente und tauscht sie aus, wenn sie in der falschen Reihenfolge sind.Die Blasensortierung hat ihren Namen, weil sie die Elemente oben im Array herausfiltert, wie Blasen, die auf dem Wasser schwimmen.

Hier istPseudocode, der den Blasensortierungsalgorithmus darstellt (aufsteigender Sortierkontext).

a [] ist ein Array der Größe N begin BubbleSort (a []) deklariert die ganze Zahl i, j für i = 0 bis N - 1 für j = 0 bis N - i - 1, wenn a [j]> a [j + 1 ] dann tauschen Sie ein [j], ein [j + 1] Ende, wenn Ende, um ein Ende BubbleSort zurückzugeben

Dieser Code ordnet ein eindimensionales Array von N Datenelementen in aufsteigender Reihenfolge an. Eine äußere Schleife lässt N-1 über das Array laufen. Jeder Durchgang verwendet eine innere Schleife, um Datenelemente so auszutauschen, dass das nächstkleinere Datenelement zum Anfang des Arrays 'sprudelt'. Das Problem ist jedoch, dass der Algorithmus einen ganzen Durchgang ohne Austausch benötigt, um zu wissen, dass die Liste sortiert ist.

Schlimmste und durchschnittliche Komplexität der Fallzeit: O (n * n). Der schlimmste Fall tritt auf, wenn ein Array umgekehrt sortiert ist.

Best-Case-Zeitkomplexität: Auf). Der beste Fall tritt auf, wenn ein Array bereits sortiert ist.

Auswahl In Java sortieren

Die Auswahlsortierung ist eine Kombination aus Suchen und Sortieren. Der Algorithmus sortiert ein Array, indem er wiederholt das minimale Element (unter Berücksichtigung der aufsteigenden Reihenfolge) aus dem unsortierten Teil findet und es an einer geeigneten Position im Array platziert.

Hier ist der Pseudocode, der den Auswahlsortieralgorithmus darstellt (aufsteigender Sortierkontext).

a [] ist ein Array der Größe N begin SelectionSort (a []) für i = 0 bis n - 1 / * aktuelles Element als Minimum setzen * / min = i / * finde das minimale Element * / für j = i + 1 bis n wenn Liste [j]

Wie Sie dem Code entnehmen können, ist die Häufigkeit, mit der die Sortierung das Array durchläuft, um eins geringer als die Anzahl der Elemente im Array. Die innere Schleife findet den nächstkleineren Wert und die äußere Schleife platziert diesen Wert an der richtigen Stelle. Die Auswahlsortierung führt nie mehr als O (n) Swaps durch und kann nützlich sein, wenn das Schreiben des Speichers eine kostspielige Operation ist.

Zeitliche Komplexität: Auf2), da es zwei verschachtelte Schleifen gibt.

Hilfsraum: Oder (1).

Einfügungssortierung in Java

Die Einfügungssortierung ist ein einfacher Sortieralgorithmus, der die Liste durchläuft, indem jeweils ein Eingabeelement verwendet wird, und das endgültig sortierte Array erstellt. Es ist sehr einfach und effektiver bei kleineren Datensätzen. Es ist eine stabile Sortierungstechnik vor Ort.

Hier ist der Pseudocode, der den Einfügesortieralgorithmus darstellt (aufsteigender Sortierkontext).

a [] ist ein Array der Größe N begin InsertionSort (a []) für i = 1 bis N key = a [i] j = i - 1, während (j> = 0 und a [j]> key0 a [j + 1] = x [j] j = j - 1 Ende, während ein [j + 1] = Schlüsselende für das Ende InsertionSort

Wie Sie aus dem Code ersehen können, ist der EinfügesortieralgorithmusEntfernt ein Element aus den Eingabedaten, findet den Ort, zu dem es gehört, in der sortierten Liste und fügt es dort ein. Es wird wiederholt, bis keine Eingabeelemente mehr unsortiert bleiben.

I'm besten fall: Der beste Fall ist, wenn die Eingabe ein Array ist, das bereits sortiert ist. In diesem Fall hat die Einfügungssortierung eine lineare Laufzeit (d. H. & Theta (n)).

Schlimmsten Fall: Die einfachste Eingabe im ungünstigsten Fall ist ein Array, das in umgekehrter Reihenfolge sortiert ist.

QuickSort in Java

Der Quicksort-Algorithmus ist ein schneller, rekursiver, nicht stabiler Sortieralgorithmus, der nach dem Divide and Conquer-Prinzip arbeitet. Es wählt ein Element als Drehpunkt aus und partitioniert das angegebene Array um diesen ausgewählten Drehpunkt.

Schritte zum Implementieren der Schnellsortierung:

  1. Wählen Sie einen geeigneten „Drehpunkt“.
  2. Teilen Sie die Listen in zwei Listenbasierend auf diesem Pivot-Element. Jedes Element, das kleiner als das Pivot-Element ist, wird in die linke Liste aufgenommen, und jedes Element, das größer ist, wird in die rechte Liste aufgenommen. Wenn ein Element dem Pivot-Element entspricht, kann es in eine beliebige Liste aufgenommen werden. Dies wird als Partitionsoperation bezeichnet.
  3. Sortieren Sie jede der kleineren Listen rekursiv.

Hier ist der Pseudocode, der den Quicksort-Algorithmus darstellt.

QuickSort (A als Array, niedrig wie int, hoch wie int) {if (niedrig

Im obigen Pseudocode partition () Funktion führt Partitionsoperation und aus Schnelle Sorte() Die Funktion ruft wiederholt die Partitionsfunktion für jede erzeugte kleinere Liste auf. Die Komplexität von Quicksort ist im Durchschnitt & Theta (n log (n)) und im schlimmsten Fall & Theta (n2).

Sortierung in Java zusammenführen

Mergesort ist ein schneller, rekursiver und stabiler Sortieralgorithmus, der auch nach dem Divide and Conquer-Prinzip arbeitet. Ähnlich wie bei Quicksort teilt die Zusammenführungssortierung die Liste der Elemente in zwei Listen. Diese Listen werden unabhängig voneinander sortiert und dann kombiniert. Während der Kombination der Listen werden die Elemente an der richtigen Stelle in der Liste eingefügt (oder zusammengeführt).

Hier ist der Pseudocode, der den Sortieralgorithmus zum Zusammenführen darstellt.

wie man Eclipse einrichtet
Prozedur MergeSort (a als Array) if (n == 1) gibt eine Variable l1 als Array zurück = a [0] ... a [n / 2] var l2 als Array = a [n / 2 + 1] ... a [n] l1 = Zusammenführen (l1) l2 = Zusammenführen (l2) Zusammenführen zurückgeben (l1, l2) Endprozedur Prozedur zusammenführen (a als Array, b als Array) var c als Array, während (a und b Elemente haben) if ( a [0]> b [0]) füge b [0] am Ende von c hinzu, entferne b [0] von b, sonst füge a [0] am Ende von c hinzu, entferne a [0] von einem Ende, wenn end while while (a hat Elemente) füge a [0] am Ende von c hinzu, entferne a [0] von einem Ende, während (b hat Elemente) füge b [0] am Ende von c hinzu, entferne b [0] vom Ende von b, während du zurückgibst c Verfahren beenden

Zusammenführen, sortieren() Funktion teilt die Liste in zwei Aufrufe Zusammenführen, sortieren() auf diesen Listen separat und kombiniert sie dann, indem sie als Parameter an die Funktion merge () gesendet werden.Der Algorithmus hat eine Komplexität von O (n log (n)) und eine breite Palette von Anwendungen.

Heap Sort in Java

Heapsort ist ein vergleichsbasierter SortieralgorithmusBinäre Heap-Datenstruktur. Sie können sich das als verbesserte Version für die Auswahlsortierung vorstellen, woEs unterteilt seine Eingabe in einen sortierten und einen unsortierten Bereich und verkleinert den unsortierten Bereich iterativ, indem es das größte Element extrahiert und in den sortierten Bereich verschiebt.

Schritte zum Implementieren von Quicksort (in aufsteigender Reihenfolge):

  1. Erstellen Sie mit dem Sortierarray einen maximalen Heap
  2. An diesem Punktt, das größte Element wird im Stammverzeichnis des Heaps gespeichert. Ersetzen Sie es durch das letzte Element des Heaps und reduzieren Sie die Größe des Heaps um 1. Zum Schluss häufen Sie die Wurzel des Baums
  3. Wiederholen Sie die obigen Schritte, bis der Heap größer als 1 ist

Hier ist der Pseudocode, der den Heap-Sortieralgorithmus darstellt.

Heapsort (a als Array) für (i = n / 2 - 1) bis i> = 0 Heapify (a, n, i) für i = n-1 bis 0 Swap (a [0], a [i]) Heapify (a, i, 0) Ende für Ende für Heapify (a als Array, n als int, i als int) am größten = i // Größte als Wurzel initialisieren int l eft = 2 * i + 1 // left = 2 * i + 1 int rechts = 2 * i + 2 // rechts = 2 * i + 2 wenn (links ein [größter]) größter = links wenn (rechts ein [größter]) größter = rechts wenn (größter! = I) Swap ( a [i], A [am größten]) Heapify (a, n, am größten) end heapify

Abgesehen von diesen gibt es andere Sortieralgorithmen, die nicht so bekannt sind, wie Introsort, Counting Sort usw. Wir fahren mit dem nächsten Satz von Algorithmen in diesem Artikel 'Datenstrukturen und Algorithmen' fort und untersuchen Suchalgorithmen.

Suchalgorithmen in Java

Die Suche ist eine der häufigsten und am häufigsten ausgeführten Aktionen in regulären Geschäftsanwendungen. Suchalgorithmen sind Algorithmen zum Suchen eines Elements mit bestimmten Eigenschaften aus einer Sammlung von Elementen. Lassen Sie uns zwei der am häufigsten verwendeten Suchalgorithmen untersuchen.

Linearer Suchalgorithmus in Java

Die lineare Suche oder die sequentielle Suche ist der einfachste Suchalgorithmus. Dabei wird nach einem Element in der angegebenen Datenstruktur gesucht, bis entweder das Element gefunden oder das Ende der Struktur erreicht ist. Wenn das Element gefunden wird, wird die Position des Elements zurückgegeben, andernfalls gibt der Algorithmus NULL zurück.

Hier ist der Pseudocode für die lineare Suche in Java:

Prozedur linear_search (a [], Wert) für i = 0 bis n-1, wenn a [i] = Wert, dann 'Found' zurückgeben i end zurückgeben, wenn 'Not found' Ende für end linear_search drucken

Es ist einBrute-Force-Algorithmus.Obwohl es sicherlich das einfachste ist, ist es aufgrund seiner Ineffizienz definitiv nicht das häufigste. Zeitliche Komplexität der linearen Suche ist AUF) .

Binärer Suchalgorithmus in Java

Die binäre Suche, auch als logarithmische Suche bezeichnet, ist ein Suchalgorithmus, der die Position eines Zielwerts innerhalb eines bereits sortierten Arrays ermittelt. Es teilt die Eingabesammlung in gleiche Hälften und das Element wird mit dem mittleren Element der Liste verglichen. Wird das Element gefunden, endet die Suche dort. Andernfalls suchen wir weiter nach dem Element, indem wir die entsprechende Partition des Arrays teilen und auswählen, je nachdem, ob das Zielelement kleiner oder größer als das mittlere Element ist.

Hier ist der Pseudocode für die binäre Suche in Java:

Prozedur binary_search ein sortiertes Array n Größe des zu durchsuchenden Array-x-Werts lowerBound = 1 UpperBound = n, während x nicht gefunden wird, wenn UpperBound

Die Suche wird beendet, wenn die obere Grenze (unser Zeiger) die untere Grenze (letztes Element) passiert, was bedeutet, dass wir das gesamte Array durchsucht haben und das Element nicht vorhanden ist.Es ist der am häufigsten verwendete Suchalgorithmus, vor allem aufgrund seiner schnellen Suchzeit. Die zeitliche Komplexität der binären Suche ist AUF) Das ist eine deutliche Verbesserung gegenüber dem AUF) Zeitkomplexität der linearen Suche.

Dies bringt uns zum Ende dieses Artikels „Datenstrukturen und Algorithmen in Java“. Ich habe eines der grundlegendsten und wichtigsten Themen von Java behandelt.Ich hoffe, Sie sind mit allem klar, was Ihnen in diesem Artikel mitgeteilt wurde.

Stellen Sie sicher, dass Sie so viel wie möglich üben und Ihre Erfahrung zurücksetzen.

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. Neben diesen Fragen zu Java-Interviews erstellen wir einen Lehrplan, der für Studenten und Fachleute konzipiert ist, die Java-Entwickler werden möchten.

Hast du eine Frage an uns? Bitte erwähnen Sie dies im Kommentarbereich dieser 'Datenstrukturen und Algorithmen in Java'. Artikel und wir werden uns so schnell wie möglich bei Ihnen melden.