Heim > Artikel > Computer-Tutorials > So implementieren Sie die Java-Binärsuche mithilfe eines rekursiven Algorithmus
Binäre rekursive Suche in öffentlichen Klassen {
public static void main(String[] args) ist der Einstiegspunkt des Java-Programms und die Startposition der Programmausführung. Mit dieser Methode können die Hauptlogik und Funktionalität des Programms geschrieben werden. Diese Methode muss in einem bestimmten Format definiert werden, bevor sie von der Java Virtual Machine aufgerufen und ausgeführt werden kann. In der Parameterliste der Hauptmethode ist args ein String-Array, das zum Empfang von Befehlszeilenparametern verwendet werden kann. Durch das Schreiben von Code in der Hauptmethode können wir verschiedene Funktionen implementieren, z. B. Ausdruck, Berechnung, Schleife, bedingte Beurteilung usw. {
//Definieren Sie das Array. Das binäre Sucharray muss ein geordnetes Array sein!
int[] arr = { 1, 3, 5, 7, 9, 11, 13, 15, 17 } ist die Deklarations- und Initialisierungsanweisung eines ganzzahligen Arrays, das 9 Elemente enthält. Der Wert jedes Elements ist 1, 3, 5, 7, 9, 11, 13, 15, 17. Auf diese Weise erstellen wir ein Integer-Array mit dem Namen arr und weisen ihm einen Anfangswert zu. In nachfolgenden Programmen können wir dieses Array verwenden, um verschiedene Vorgänge wie Suchen, Sortieren und Zählen auszuführen
//Übernehmen Sie den Rückgabewert nach der Suche: Indexwert, wenn nicht, ist er -1;
//Testelement finden: 9
int a = BinarySearch(arr, 9, 0, arr.length - 1);
System.out.println("Die Indexposition der gesuchten Nummer ist: " + a);
}
//Die Parameterliste ist: zu durchsuchendes Array, zu suchende Nummer, Kopfindex, Endindex!
public static int Binary(int[] arr, int key, int start, int end) // Rekursion
{
//Erstellen Sie jedes Mal einen Zwischenindexwert!
int mid = (Stern + Ende) / 2;
Wenn die zu findende Zahl kleiner als der Startindex oder größer als der Endindex ist oder der Startindex größer als der Endindex ist, bedeutet dies, dass die Zahl nicht existiert und -1 zurückgegeben wird.
if (Taste arr[end] || start > end) {
return -1;
}
//Wenn der Mittelwert kleiner als die gesuchte Zahl ist, definieren Sie den Header-Index neu und verschieben Sie ihn an die mittlere +1-Position, sodass die Hälfte der Zahlen herausgefiltert werden kann!
if (arr[mid] //Rekursion starten! return Binary(arr, key, mid + 1, end); // Binäre Suche in der zweiten Hälfte des Arrays fortsetzen //Andernfalls, wenn der mittlere Wert größer als die gesuchte Zahl ist, verschieben Sie den Endindex zurück auf die mittlere Position von -1, damit die Hälfte der Zahlen herausgefiltert werden kann! } else if (arr[mid] > key) { //Rekursion starten! binär zurückgeben(arr, key, start, mid - 1); } sonst { //Wenn nicht, wird es gefunden, zurück zum Index! Rückkehr Mitte; } } } Erste Frage: öffentliche Klasse CalSum { public static void main(String[] args) ist der Einstiegspunkt des Java-Programms und die Startposition der Programmausführung. Mit dieser Methode können die Hauptlogik und Funktionalität des Programms geschrieben werden. Diese Methode muss in einem bestimmten Format definiert werden, bevor sie von der Java Virtual Machine aufgerufen und ausgeführt werden kann. In der Parameterliste der Hauptmethode ist args ein String-Array, das zum Empfang von Befehlszeilenparametern verwendet werden kann. Durch das Schreiben von Code in der Hauptmethode können wir verschiedene Funktionen implementieren, z. B. Ausdruck, Berechnung, Schleife, bedingte Beurteilung usw. { CalSum calSum = new CalSum(); int result = calSum.calculate(100); // Rufen Sie die Methode „calculate“ des calSum-Objekts auf, übergeben Sie den Parameter 100 und weisen Sie das Ergebnis der Ergebnisvariablen zu. System.out.println("Die Summe von 1+2+3+...+100 ist gleich" + Ergebnis); } öffentliche int-Berechnung (int-Zahl) { int Ergebnis = 0; if(number == 1) { Ergebnis = 1; } sonst { result = Zahl + berechne(Zahl - 1); Das Ergebnis besteht darin, die aktuelle Zahl und den Rückgabewert von Zahl-1 zu addieren. Dieser Ausdruck kann rekursiv berechnet werden. Bei jedem rekursiven Aufruf wird der Wert von Zahl um 1 dekrementiert, bis die Rekursion stoppt, wenn Zahl gleich 1 ist. Der Rückgabewert des rekursiven Aufrufs wird kontinuierlich im Endergebnis akkumuliert. Auf diese Weise können wir die Summe einer Folge erhalten. } Rückgabeergebnis; } }
public int sum(int x){ if(x return x; } return x+sum(x-1); } int s=10; int total=sum(s); In diesem Beispiel ruft sich die Summenfunktion immer selbst auf und gibt x+sum(x-1); zurück. Summe hat Exit-Bedingung, x
Das Endergebnis ist 10+9+8+7+... 1 In vielen Fällen können sowohl Iteration als auch Rekursion dieselbe Funktion erreichen, es gibt jedoch einige Funktionen, die durch Iteration nicht ausgeführt werden können. Darüber hinaus ist rekursiver Code präziser und eine kompetente Verwendung der Rekursion kann die Codequalität verbessern. Die JAVA-Sprache für Expertenprogrammierung verwendet einen rekursiven Algorithmus und 1 2 3 4 100 oder 11 13 15
Was sind die Algorithmen der Rekursion und Iteration in Java?
Iteration ist eine normale Schleife.
Das obige ist der detaillierte Inhalt vonSo implementieren Sie die Java-Binärsuche mithilfe eines rekursiven Algorithmus. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!