Heim  >  Artikel  >  Java  >  BinarySearch() in Java

BinarySearch() in Java

WBOY
WBOYOriginal
2024-08-30 16:12:22920Durchsuche

In Java ist BinarySearch() eine Methode, die bei der Suche nach einem bestimmten Schlüsselelement aus mehreren Elementen mithilfe des binären Suchalgorithmus hilft. Um diese Operation auszuführen, müssen Elemente in aufsteigender Reihenfolge sortiert werden. Wenn es nicht sortiert ist, kann es mit der Methode Arrays.sort(arr) sortiert werden. Andernfalls werden die Ergebnisse als undefiniert bezeichnet.  Im Vergleich zur linearen Suche gilt die binäre Suche als schneller. Aus diesem Grund wird die zeitliche Komplexität der binären Suche als O(log n) bezeichnet. Darüber hinaus kann die Methode „binarySearch()“ aus dem Paket java.util.Arrays instanziiert werden. Weitere Details zur Methode „binarySearch()“ werden in den folgenden Abschnitten besprochen.

Syntax:

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

public static int binarySearch(Object[] a, Object key)

Hier sind die Parameter a und key das zu durchsuchende Array bzw. der zu findende Wert.

Die Methode

binarySearch() gibt den Index des Schlüsselelements zurück, nach dem gesucht wurde. Falls das Schlüsselelement nicht gefunden wird, wird ein Einfügepunkt an der Stelle zurückgegeben, an der das Schlüsselelement eingefügt worden wäre. Wenn das Schlüsselelement der Suche nicht mit anderen Elementen im Array vergleichbar ist, wird eine Ausnahme namens ClassCastException ausgelöst.

Wie funktioniert die BinarySearch()-Methode in Java?

Lassen Sie uns sehen, wie diese Methode in Java funktioniert:

  1. Angenommen, k ist das Schlüsselelement, nach dem gesucht werden muss. Vergleichen Sie k mit dem mittleren Element des Arrays.
  2. Wenn k mit dem Element in der Mittelposition übereinstimmt, muss der Mittelindex zurückgegeben werden.
  3. Ansonsten: Wenn k höher als das Element in der Mittelposition ist, kann k nur auf der rechten Seite des Mittelelements gefunden werden.
  4. Ansonsten ist es auf der linken Seite des mittleren Elements zu finden.

Beispiele zur Implementierung von BinarySearch() in Java

Im Folgenden finden Sie Beispiele einiger Programme für die BinarySearch()-Methode.

Beispiel #1

Code:

import java.util.Arrays;
public class BinarySearchExample
{
public static void main(String[] args)
{
//create a byte array
byte ba[] = {05, 10, 15, 20, 25, 30};
//create a character array
char ca[] = {'a', 'n', 's', 'p', 'v', 'i', 'd'};
//create an integer array
int ia[] = { 10, 20, 15, 22, 35};
//create a double array
double da[] = {10.1 , 15.34 , 22.25, 13.5};
//create a float array
float fa[] = {13.2f, 25.1f , 22.2f , 43.5f };
//sort all the arrays that created above
Arrays.sort(ba);
Arrays.sort(ca);
Arrays.sort(ia);
Arrays.sort(da);
Arrays.sort(fa);
//enter the key elements that has to be searched in the array
byte bKey = 15;
char cKey = 'i';
int iKey = 22;
double dKey = 15.34;
float fKey = 22.2f;
System.out.println("Element "+ bKey + " is found at the position of " + Arrays.binarySearch(ba,bKey) );
System.out.println("Element "+ cKey + " is found at the position of " + Arrays.binarySearch(ca,cKey) );
System.out.println("Element "+ iKey + " is found at the position of " + Arrays.binarySearch(ia,iKey) );
System.out.println("Element "+ dKey + " is found at the position of " + Arrays.binarySearch(da,dKey) );
System.out.println("Element "+ fKey + " is found at the position of " + Arrays.binarySearch(fa,fKey) );
}
}

Ausgabe:

BinarySearch() in Java

Bestimmte Arrays verschiedener Typen wie Zeichen, Ganzzahl, Float, Double und Bytes werden erstellt, nachdem die Arrays mithilfe von Arrays in der obigen Methode program.Sort() sortiert wurden. Elemente, die in den Arrays gesucht werden müssen, werden deklariert. Anschließend wird der Index des gesuchten Elements mit der Methode Arrays.binarySearch() gedruckt.

Angenommen, es wird ein Schlüsselelement angegeben, das im Array nicht vorhanden ist. Was wird die Ausgabe sein??

Um das herauszufinden, ändern wir den Code der Schlüsselelemente wie unten gezeigt.

byte bKey = 15;
char cKey = ‘i’;
int iKey = 89;
double dKey = 15,34;
float fKey = 22.2f;

Das heißt, iKey=89 ist nicht im Array vorhanden, dann wird die Ausgabe wie folgt angezeigt.

BinarySearch() in Java

Wie wir sehen können, wird die Position als -6 gedruckt. Denn wenn ein Element gesucht und nicht gefunden wird, wird der negative Wert des Index zurückgegeben, wenn dieses Element vorhanden war. d.h. int ia[] = { 10, 20, 15, 22, 35} ist das gegebene Array. Wenn 89 vorhanden wäre, wäre das Array int ia[] = { 10, 20, 15, 22, 35, 89};

Es ist deutlich zu erkennen, dass der Index 6 gewesen wäre. Da er im ursprünglichen Array nicht vorhanden ist, wird der negative Wert dieses bestimmten Index in der obigen Ausgabe zurückgegeben.

Beispiel #2

Eine binäre Suche kann auch mit Hilfe der Rekursion durchgeführt werden, wie unten gezeigt.

Code:

//sample class
class BinarySearchExample{
public static int binarySearch(int a[], int f, int l, int k){
//if last element is greater than or equal to first element
if (l>=f)
{
//find the mid
int m = f + (l - f)/2;
//if the key element that is searching is found in middle position, return mid position
if (a[m] == k)
{
return m;
}
//if key element is less than element in middle position, search the left <u>subarray</u>
if (a[m] > k){
return binarySearch(a, f, m-1, k);
}
//if key element is greater than the element in middle position, search the right <u>subarray</u>
else{
return binarySearch(a, m+1, l, k);
}
}
return -1;
}
public static void main(String args[]){
//initialise the array
int a[] = {34,45,54,68,79};
int k = 68;
int l = a.length-1;
//store the position in variable res
int res = binarySearch(a,0,l,k);
if (res == -1)
System.out.println("Sorry!! Can't find the element....!");
else
System.out.println("Element is found at the position: "+res);
}
}

Ausgabe:

BinarySearch() in Java

Im obigen Programm wird zunächst ein Array erstellt und auch das herauszufindende Element deklariert. Mithilfe der Methode „binarySearch()“ wird die Position der Schlüsselelemente ermittelt.  Angenommen, das Element wird nicht gefunden, wird die Meldung „Leider!!! Das Element wurde nicht gefunden“ gedruckt.

Fazit

binarySearch() ist eine Java-Methode, die dabei hilft, mithilfe des binären Suchalgorithmus ein bestimmtes Schlüsselelement unter mehreren im Array verfügbaren Elementen zu finden. Funktionsweise und Beispiele dieser Methode werden in diesem Dokument ausführlich erläutert.

Empfohlener Artikel

Dies ist eine Anleitung zu BinarySearch() in Java. Hier diskutieren wir, wie die BinarySearch()-Methode in Java funktioniert, und Beispiele mit Code-Implementierung. Sie können auch unsere anderen empfohlenen Artikel durchsehen, um mehr zu erfahren –

  1. JavaScript-Mathefunktionen
  2. Layout in Java
  3. Java-Compiler
  4. Sortierung in Java zusammenführen

Das obige ist der detaillierte Inhalt vonBinarySearch() in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Komposition in JavaNächster Artikel:Komposition in Java