Ein mögliches Beispiel ist:
%Vor%Hier können Sie die C-Binärsuche mit und ohne Rekursion einchecken
Quelle: Ссылка
Ich habe meine freie Zeit genutzt, um Java durch Codierungsalgorithmen zu üben. Einer der von mir kodierten Algorithmen war die binäre Suche:
%Vor%Ich möchte wirklich in der Lage sein, einen viel saubereren und effizienteren binären Suchalgorithmus zu schreiben, eine Alternative zu dem, was ich programmiert habe. Ich habe Beispiele dafür gesehen, wie Rekursion verwendet wird, etwa wenn ich faktoriell mit Zahlen arbeite, die ich verstehe. Wenn ich jedoch etwas von dieser Komplexität schreibe, bin ich verwirrt darüber, wie ich es zu meinem Vorteil nutzen kann. Daher meine Frage ist, wie ich Rekursion anwenden, wenn Sie einen binären Suchalgorithmus kodieren. Und wenn Sie irgendwelche Tipps für mich haben, meine Rekursionsfähigkeiten zu perfektionieren, auch wenn es etwas sein muss, das keine binäre Suche berücksichtigt, dann zögern Sie nicht, zu posten.
Hier ist eine einfachere Art, die binäre Suche durchzuführen:
%Vor%Hier ist ein Algorithmus, der Sie in Schwung bringen soll. Lassen Sie Ihre Methodensignatur:
%Vor%false
zurückgeben. mid_element
für dein Eingabe-Array. search_element
diesem mid_element
entspricht. wenn JA, geben Sie true
mid_element
& gt; search_element
Rufen Sie Ihre Methode mit für range 0 - mid
auf
mid_element
& lt; search_element
Rufen Sie Ihre Methode mit für den Bereich mid+1 - Length_of_Array
auf
Auch wie @DwB in seinem Kommentar sagte, benutzt man besser loop, um Dinge zu erledigen. Einige Probleme sind rekursiver Natur (wie Binärbaumprobleme). Aber dieser gehört nicht dazu.
Nachfolgend finden Sie ein Codebeispiel aus hier .
%Vor%Sie finden Implementierungen der folgenden Testfälle gegen die obige binäre Suchimplementierung auch in der Referenz link .
%Vor%Hier ist eine einfachere Art, die binäre Suche durchzuführen:
%Vor%Wenn Sie wirklich Rekursion verwenden möchten, sollte dies tun.
%Vor%Dies ist eine andere Art, Rekursion zu machen:
%Vor%Hier ist ein Algorithmus, der Sie in Schwung bringen soll. Lassen Sie Ihre Methodensignatur:
%Vor%Auch wie @DwB in seinem Kommentar sagte, benutzt man besser loop, um Dinge zu erledigen. Einige Probleme sind rekursiver Natur (wie Binärbaumprobleme). Aber dieser gehört nicht dazu.
Ich habe meine freie Zeit genutzt, um Java durch Codierungsalgorithmen zu üben. Einer der von mir kodierten Algorithmen war die binäre Suche:
%Vor%Ich möchte wirklich in der Lage sein, einen viel saubereren und effizienteren binären Suchalgorithmus zu schreiben, eine Alternative zu dem, was ich programmiert habe. Ich habe Beispiele dafür gesehen, wie Rekursion verwendet wird, etwa wenn ich faktoriell mit Zahlen arbeite, die ich verstehe. Wenn ich jedoch etwas von dieser Komplexität schreibe, bin ich verwirrt darüber, wie ich es zu meinem Vorteil nutzen kann. Daher meine Frage ist, wie ich Rekursion anwenden, wenn Sie einen binären Suchalgorithmus kodieren. Und wenn Sie irgendwelche Tipps für mich haben, meine Rekursionsfähigkeiten zu perfektionieren, auch wenn es etwas sein muss, das keine binäre Suche berücksichtigt, dann zögern Sie nicht, zu posten.
Eine Rekursion BinarySearch mit Abbruchbedingungen, falls Sie den gesuchten Wert nicht finden können
%Vor%Die Implementierung
%Vor%Ein mögliches Beispiel ist:
%Vor%Hier können Sie die C-Binärsuche mit und ohne Rekursion einchecken
Quelle: Ссылка
Obwohl der Index nicht zurückgegeben wird, gibt dies zumindest die Idee von "Ja" oder "Nein" zurück, dass sich etwas in der Sammlung befindet:
%Vor%Obwohl der Index nicht zurückgegeben wird, gibt dies zumindest die Idee von "Ja" oder "Nein" zurück, dass sich etwas in der Sammlung befindet:
%Vor%Eine Rekursion BinarySearch mit Abbruchbedingungen, falls Sie den gesuchten Wert nicht finden können
%Vor%Die Implementierung
%Vor%Tags und Links algorithm java binary-search