Ausführung gibt keinen Fehler an, Return wird aber nicht ausgegeben

N

NicknamePN

Mitglied
public static int binRecSearch (int[] field, int key){
int Anfang = 0;
int Ende = field.length -1;
return binRecSearch(field, key, Anfang, Ende);
}

public static int binRecSearch (int[] field, int key, int Anfang, int Ende){
while (Anfang<=Ende){
int Mitte = (Anfang+Ende)/2;
if (Mitte==key)
return Mitte;
else if (field[Mitte] > key)
binRecSearch(field, key, Anfang, Mitte-1);
else
binRecSearch(field, key, Mitte+1, Ende);
}
return -1;
}

public static void main(String[] args){
int [] array2 = new int[4];
array2[0]=2;
array2[1]=5;
array2[2]=6;
array2[3]=8;

System.out.println(binRecSearch(array2, 5));
}

Das Programm wird ohne Fehlermeldung ausgeführt, braucht aber extrem lange und zudem wird einfach nach erfolgreicher Ausführung nichst auf der Konsole ausgegeben
(ich versuche eine rekursive binär Suche zu programmieren)
 
N

NicknamePN

Mitglied
Ihc glaube nicht, sonst würde es java ja nicht ausführen sondern irgendwann einen fehler geben. Außerdem wird in der if else entweder Anfang immer größer oder Ende immer kleiner.
 
krgewb

krgewb

Top Contributor
Das Programm wird ohne Fehlermeldung ausgeführt, braucht aber extrem lange und zudem wird einfach nach erfolgreicher Ausführung nichst auf der Konsole ausgegeben
Wie lange braucht es?
Bei mir war es nach drei Minuten immer noch nicht fertig. Das erkenne ich an dem roten Quadrat in der Konsole in Eclipse.
 
N

NicknamePN

Mitglied
public static int binRecSearch (int[] field, int key, int Anfang, int Ende){
int Mitte = (Anfang+Ende)/2;
if (Mitte==key)
return Mitte;
while (Anfang<=Ende){
if (field[Mitte] > key)
binRecSearch(field, key, Anfang, Mitte-1);
else
binRecSearch(field, key, Mitte+1, Ende);
}
return -1;
}

so funktioniert es aber auch nicht
 
JStein52

JStein52

Top Contributor
Natürlich nicht. Du hast ja auch an der Endlosschleife nichts geändert. Wie soll den jemals Anfang > Ende werden ??
 
N

NicknamePN

Mitglied
wenn ich die funktion wieder aufrufe oder? ich gebe ihm doch dann entweder mach ende zu Mitte-1 oder Anfang zu Mitte +1
 
mrBrown

mrBrown

Super-Moderator
Mitarbeiter
Wenn du die Funktion wieder aufrufst gibt es ein neues "Anfang" für diesen neuen Aufruf
 
N

NicknamePN

Mitglied
Das Programm gibt den Fehler
Exception in thread "main" java.lang.StackOverflowError
at blatt5.Search.binRecSearch(Search.java:27) aus
 
N

NicknamePN

Mitglied
Ja, ich bin gerade auch drauf gekommen, dass der Fehler unglaublich trivial ist. Die bedingung muss lauten
if (field[Mitte]==key)
return Mitte;
so funktioniert es ohne probleme.
Kann ich den thread irgendwie als abgeschlossen markieren?
Danke nochmal für die Hilfe :)
 
N

NicknamePN

Mitglied
Funktionsfähig schaut es so aus
public static int binRecSearch (int[] field, int key){
int Anfang = 0;
int Ende = field.length -1;
return binRecSearch(field, key, Anfang, Ende);
}

public static int binRecSearch (int[] field, int key, int Anfang, int Ende){

int Mitte = (Anfang+Ende)/2;
if (field[Mitte]==key)
return Mitte;
else if (Anfang>=Ende)
return -1;
else if (field[Mitte] > key)
binRecSearch(field, key, Anfang, Mitte-1);
else if (field[Mitte] < key)
binRecSearch(field, key, Mitte+1, Ende);
return -1;
}
 
N

NicknamePN

Mitglied
Ich bin mir ziemlich sicher habe es an 6 verschiedenen arrays ausprobiert, und es hat immer entweder den key in der Liste gefunden oder -1 wiedergegeben, falls er nicht verhanden war
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Fehler bei Ausführung Java Basics - Anfänger-Themen 5
L Fehler bei der AUsführung der .class Datei Java Basics - Anfänger-Themen 23
H Fehlermeldung bei der Ausführung eines Compilierten PRGs Java Basics - Anfänger-Themen 9
S abbruch nach Ausführung eines ActionListeners...warum? Java Basics - Anfänger-Themen 6
L Javaprogramm nach ausführung des gesammten Cods neu beginnen lassen Java Basics - Anfänger-Themen 9
S Erste Schritte Doppelte Ausführung? Java Basics - Anfänger-Themen 4
F Java exception bei der Ausführung Java Basics - Anfänger-Themen 10
S Unterschied Ausführung in IDE <-> Befehlszeile Java Basics - Anfänger-Themen 0
J Methode vor Ausführung einer vorhandenen Methode aufrufen Java Basics - Anfänger-Themen 5
T Ausführung zeitlich begrenzen? Java Basics - Anfänger-Themen 2
F Runtime - Ausführung abwarten Java Basics - Anfänger-Themen 6
Y .class Ausführung nicht möglich - Path lässt sich nicht ändern Java Basics - Anfänger-Themen 8
N Ausführung Java Basics - Anfänger-Themen 3
M Polymorphie Cast:Verständnis und Ausführung Java Basics - Anfänger-Themen 10
B Absturz der VM bei Ausführung meines Programms Java Basics - Anfänger-Themen 3
B bat Datei erstellen und ausführen / keine ausführung Java Basics - Anfänger-Themen 3
M libs/jars richtig mitladen bei der Ausführung Java Basics - Anfänger-Themen 4
W Fehler bei Ausführung von Testklasse Java Basics - Anfänger-Themen 2
M Ausführung von Suche langsamer machen Java Basics - Anfänger-Themen 7
L Ausführung unter DOS macht Probleme Java Basics - Anfänger-Themen 2
B Problem mit Ausführung von Programm Java Basics - Anfänger-Themen 4
P Methode die ausgibt wie viele Primzahlen es zwischen 2 und n gibt Java Basics - Anfänger-Themen 10
P Welche Zeile in Tadople gibt einen compiler error? Java Basics - Anfänger-Themen 5
S Gibt es ein simples JWebbrowser Element? Java Basics - Anfänger-Themen 6
S Gibt es irgendeine Möglichkeit, dies zu tun?(Android Studio) Java Basics - Anfänger-Themen 1
S Gibt es sowas (JSpinner)? Java Basics - Anfänger-Themen 9
F If Abfrage gibt falsches Ergebnis.... Java Basics - Anfänger-Themen 6
J Erste Schritte Gibt es setMantisse? Java Basics - Anfänger-Themen 7
J Vektoren Add gibt nicht das aus was es sollte Java Basics - Anfänger-Themen 3
S Gibt es einen guten kostenlosen Online-kurs Java Basics - Anfänger-Themen 2
D Warum gibt mir das Programm nicht den Array invertiert an ? Java Basics - Anfänger-Themen 1
B Prüfen, ob es schon einen Termin gibt in einem Zeitraum Java Basics - Anfänger-Themen 5
A Kfz - Händler Klasse. JUnit-Test gibt noch Fehler an, aber finde Ursache nicht Java Basics - Anfänger-Themen 7
S Gibt es für die Klasse HashMap Generic Implementierungen? Java Basics - Anfänger-Themen 11
S Gibt es eine Funktion, die gewissermaßen eine Reihe von instanceOf() vereinheitlicht? Java Basics - Anfänger-Themen 19
L Methoden Rekursion gibt alten Wert wieder Java Basics - Anfänger-Themen 37
Aprendiendo Gibt es in der JAVA-API eine Funktion, die eine Dezimalzahl in eine binäre Zahl umwandelt? Java Basics - Anfänger-Themen 8
E Gibt es in Java Properties (wie in C#) Java Basics - Anfänger-Themen 6
R Gibt es Eine einfache Programierung dieser Methoden Java Basics - Anfänger-Themen 8
B BufferedReader gibt Datei-Inhalt doppelt aus Java Basics - Anfänger-Themen 3
B Wieso gibt er hier nur die ungeraden Zahlen aus? Java Basics - Anfänger-Themen 5
B Wieso gibt das Programm in der Console kein Ergebnis aus? Java Basics - Anfänger-Themen 2
D Funktion gibt Dimension zurück Java Basics - Anfänger-Themen 11
JavaNewbie2.0 Gibt meiner Meinung etwas falsches aus. Java Basics - Anfänger-Themen 7
S Ausgabe gibt nur Arrayadresse aus... Java Basics - Anfänger-Themen 4
F Scanner - nextLine() gibt leeren String zurück Java Basics - Anfänger-Themen 2
Tommy Nightmare void Methode gibt Array zurück Java Basics - Anfänger-Themen 3
N Kalender - Tag addieren gibt 31. Juni zurück Java Basics - Anfänger-Themen 3
G Gibt es eine Methode die bei einem StringBuilder n mal das Zeichen c hinzufügt? Java Basics - Anfänger-Themen 6
G Taschenrechner gibt nur 0.0 aus Java Basics - Anfänger-Themen 8
OlafHD Gibt es einen Laufbalken? Java Basics - Anfänger-Themen 2
P Listen sortieren mit Binärbaum gibt keine Ausgabe ab 10000 Integern Java Basics - Anfänger-Themen 14
G Input/Output InputStream gibt nicht die Korrekten Werte aus Java Basics - Anfänger-Themen 10
W IllegalArgumentException gibt nichts aus Java Basics - Anfänger-Themen 2
K Programm gibt nichts aus? Java Basics - Anfänger-Themen 2
M Erste Schritte Wie speichert und gibt man Arrays aus? (JLabel) Java Basics - Anfänger-Themen 12
B gibt es ein Stundenplan-Algorithmus? Java Basics - Anfänger-Themen 11
G Konsole gibt "alte" sachen aus Java Basics - Anfänger-Themen 3
J while(nst == 0) gibt Fehlermeldung Java Basics - Anfänger-Themen 4
W Input/Output DataOutputStream gibt NULL zurück Java Basics - Anfänger-Themen 5
O Methode gibt Null zurück Java Basics - Anfänger-Themen 7
F Java-Programm gibt in Eingabeaufforderung nichts aus Java Basics - Anfänger-Themen 4
T Konsole gibt nicht das Gewünschte aus Java Basics - Anfänger-Themen 5
T Input/Output GregorianCalender gibt falsch aus? Java Basics - Anfänger-Themen 4
C OOP Erstellen eigener Objekte die es schon gibt "schlau"? Java Basics - Anfänger-Themen 3
I beim auslesen der Properties gibt es ein Fehler Java Basics - Anfänger-Themen 7
C Input/Output System.in.read() gibt nicht -1 zurück? Java Basics - Anfänger-Themen 3
T String gibFarbe() - gibt nix?! Java Basics - Anfänger-Themen 13
L Gibt es etwas wie "HashMap <String, String, String> Java Basics - Anfänger-Themen 9
B JRadioButton wechsel gibt NullPointerException Java Basics - Anfänger-Themen 2
P Temperatur Umrechner gibt nur ein Ergebnis aus Java Basics - Anfänger-Themen 2
S Class File Editor gibt beim Start der Programms die Fehlermeldung Source not found aus Java Basics - Anfänger-Themen 1
D Methode die statt char[] ein "null" zurück gibt Java Basics - Anfänger-Themen 8
M Input/Output File.listFiles() gibt null zurück Java Basics - Anfänger-Themen 3
C Welches Format gibt Java aus? Java Basics - Anfänger-Themen 5
S Methoden void-Methode: Wieso gibt es eine Rückgabe? Java Basics - Anfänger-Themen 5
S Textdatei lesen, Methode gibt nur die letzte Zeile aus. Warum? Java Basics - Anfänger-Themen 5
W return-Anweisung gibt nichts aus Java Basics - Anfänger-Themen 5
M toString gibt "null" statt "0.0" aus Java Basics - Anfänger-Themen 5
P 2D Array auslesen gibt nur letzten Wert aus Java Basics - Anfänger-Themen 11
O Funktioniert dies? Und gibt es eine bessere Lösung? Java Basics - Anfänger-Themen 6
T Methoden methode gibt array bound exeption Java Basics - Anfänger-Themen 8
B Input/Output File.length() gibt bei vielen Ordnern 0 zurück Java Basics - Anfänger-Themen 9
G Erste Schritte Über verschiedene Datentypen iterieren. Gibt es sowas? Java Basics - Anfänger-Themen 19
Xendarii Quicksort gibt kein Ergebnis aus Java Basics - Anfänger-Themen 13
SheldoN Gibt es größere Datentypen als long? Java Basics - Anfänger-Themen 2
S Rückgabetyp - Objekt gibt sich selber zurück Java Basics - Anfänger-Themen 4
G Eclipse gibt Fehler aus, Jelliot (z.B.) nicht Java Basics - Anfänger-Themen 1
C Programm gibt merkwürdige Zahl aus Java Basics - Anfänger-Themen 3
C Umgebungsvariable import anweisung gibt fehlermeldung Java Basics - Anfänger-Themen 2
N Unerklärlich: Rekursiver Algorithmus gibt falschen Datentyp zurück... Java Basics - Anfänger-Themen 4
P toString-Methode gibt immer null vor Variable aus Java Basics - Anfänger-Themen 9
L JTextField getText() gibt immer null zurück Java Basics - Anfänger-Themen 10
K Javalexikon für Grundbegriffe? Gibt es sowas? Java Basics - Anfänger-Themen 7
J SuM.kern.Maus gibt null obwohl initialisiert Java Basics - Anfänger-Themen 3
M Datentypen Char Array in String Array gibt Probleme Java Basics - Anfänger-Themen 10
A InputStream gibt nur jede 2te Zeile aus Java Basics - Anfänger-Themen 7
D p q formel gibt zum Teil falsche Werte aus Java Basics - Anfänger-Themen 5
R Gibt es eine (Schnittstelle) für .ini Datei Formatierungen? Java Basics - Anfänger-Themen 8
D Gibt es in Java Pointerarithmetik? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Anzeige

Neue Themen


Oben