English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
In diesem Beispiel werden wir die Implementierung des binären Suchalgorithms in Java lernen.
Bevor Sie die Implementierung der binären Suche in Java lernen, stellen Sie sicher, dass Sie die Funktionsweise des binären Suchalgorithms verstehen.
import java.util.Scanner; //Binärsuche in Java class Main { int binarySearch(int array[], int element, int low, int high) { //Wiederholen Sie diesen Prozess, bis die Punkte der Höhe (high) und Tiefe (low) gleich sind while (low <= high) { //Erhalten Sie den Index des mid-Elements int mid = low + (high - low) / 2; //Wenn das zu suchende Element das mid-Element ist if (array[mid] == element) return mid; //Wenn das Element kleiner als das mid-Element ist //Suchen Sie nur die linke Seite von mid if (array[mid] < element) low = mid + 1; //Wenn das Element größer als das mid-Element ist //Suchen Sie nur die rechte Seite von mid else high = mid - 1; } return -1; } public static void main(String args[]) { //Erstellen Sie ein Objekt der Klasse Main Main obj = new Main(); //Erstellen Sie ein sortiertes Array int[] array = { 3, 4, 5, 6, 7, 8, 9 }; int n = array.length; //Eingaben vom Benutzer abrufen, zu suchendes Element Scanner input = new Scanner(System.in); System.out.println("Geben Sie das zu suchende Element ein:"); //Zu suchendes Element int element = input.nextInt(); input.close(); //Rufen Sie den binären Suchvorgang auf //Übergeben Sie die Parameter: Array, Element, Index des ersten und letzten Elements int result = obj.binarySearch(array, element, 0, n - 1); if (result == -1) System.out.println("Nicht gefunden"); else System.out.println("Das Element gefunden, im Index ") + result); } }
Ausgabe1
Geben Sie das zu suchende Element ein: 6 Das Element gefunden, im Index 3
Hier haben wir bereitsJava Scanner-KlasseEingaben vom Benutzer abrufen. Basierend auf der Eingabe des Benutzers haben wir einen binären Suchvorgang verwendet, um zu überprüfen, ob das Element im Array vorhanden ist.
Wir können auch rekursiv aufrufen, um die gleiche Aufgabe auszuführen.
int binarySearch(int array[], int element, int low, int high) { if (high >= low) { int mid = low + (high - low) / 2; // Prüfe, ob das Element mid der gesuchten ist if (array[mid] == element) return mid; //Suche die linke Hälfte von mid if (array[mid] > element) return binarySearch(array, element, low, mid - 1); //Suche die rechte Hälfte von mid return binarySearch(array, element, mid + 1, high); } return -1; }
Hier wird die Methode binarySearch() sich selbst aufrufen, bis das Element gefunden wird oder die if-Bedingung fehlschlägt.