Heim  >  Artikel  >  Computer-Tutorials  >  So implementieren Sie die Java-Binärsuche mithilfe eines rekursiven Algorithmus

So implementieren Sie die Java-Binärsuche mithilfe eines rekursiven Algorithmus

WBOY
WBOYnach vorne
2024-01-12 20:06:051324Durchsuche

So implementieren Sie den rekursiven Algorithmus der binären Suche in Java

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;

}

}

}

So implementieren Sie die Java-Binärsuche mithilfe eines rekursiven Algorithmus

Die JAVA-Sprache für Expertenprogrammierung verwendet einen rekursiven Algorithmus und 1 2 3 4 100 oder 11 13 15

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;

}

}

Was sind die Algorithmen der Rekursion und Iteration in Java? Iteration ist eine normale Schleife.

Beispiel: Addiere von 1 bis 10

int sum=0

for(int i=0;i sum=sum+i;

}

Rekursion bedeutet, dass sich eine Funktion direkt oder indirekt selbst aufruft.

Zum Beispiel: Es waren einmal ein großer Mönch und ein kleiner Mönch in einem Tempel. Der große Mönch bat den kleinen Mönch, Geschichten zu erzählen In einem Tempel bat der kleine Mönch den großen Mönch, Geschichten zu erzählen. Der große Mönch erzählte weiter, dass es früher einen großen und einen kleinen Mönch in einem Tempel gab und sie jeden Tag gemeinsam Buddhismus praktizierten und studierten.

Eigenschaften der Rekursion:

Es müssen drei Bedingungen vorliegen:

1. Rufen Sie sich indirekt oder direkt an.

2. Stellen Sie beim Spielen sicher, dass Sie Bedingungen für das Verlassen festlegen. Der große Mönch wird beispielsweise aufhören, der Geschichte zuzuhören, wenn sein Mund trocken ist. Wenn keine Beendigungsbedingungen festgelegt sind, kann das Spiel in eine Endlosschleife geraten.

3. Es muss einen logischen Körper geben (was Sie tun möchten).

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.

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!

Stellungnahme:
Dieser Artikel ist reproduziert unter:docexcel.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen