leider wird mir immer der Wert MAX_Value zurückgegeben. Ich kann es mir jedoch nicht erklären und hab auch schon einiges ausprobiert. Ich weiß jedoch keine Möglichkeit mehr woran es liegen könnte. Ich hoffe ihr könnt mir helfen.
Danke.
Java:
/*
* Soll durch Aufruf einer rekursiven Methode das minimale Element eines
* Arrays finden.
*/protectedintminRekursiv(int[] x){int min =Integer.MAX_VALUE;int ersterWert = x[0];int letzterWert = x[x.length-1];if( x.length <2){
min = x[0];}else{if(ersterWert <= letzterWert){int y[]=newint[x.length-1];for(int i =0; i < x.length-1; i++){
y[i]= x[i];}minRekursiv(y);}else{int y[]=newint[x.length-1];for(int i =1; i < x.length; i++){
y[i-1]= x[i];}minRekursiv(y);}}return min;}
Danke für den Tipp. Danke für den Tipp. Ich hab den min Wert zwei Mal zu wenig geändert.
Java:
protectedintminRekursiv(int[] x){int min =Integer.MAX_VALUE;int ersterWert = x[0];int letzterWert = x[x.length-1];if( x.length <2){
min = x[0];}else{if(ersterWert <= letzterWert){int y[]=newint[x.length-1];for(int i =0; i < x.length-1; i++){
y[i]= x[i];}
min =minRekursiv(y);}else{int y[]=newint[x.length-1];for(int i =1; i < x.length; i++){
y[i-1]= x[i];}
min =minRekursiv(y);}}return min;}
Da ist mir etwas zu viel doppelter Code. Wie wäre e so?
Java:
publicclassRecursion1{publicstaticvoidmain(String[] args){int[] a ={1,4,2,963836,-4,2,0};int min =minRekursiv(a);System.out.println(min);}publicstaticintminRekursiv(int[] x){int min =Integer.MAX_VALUE;int ersterWert = x[0];int letzterWert = x[x.length -1];if(x.length <2){
min = x[0];}else{int y[]=newint[x.length -1];if(ersterWert <= letzterWert){for(int i =0; i < x.length -1; i++){
y[i]= x[i];}}else{for(int i =1; i < x.length; i++){
y[i -1]= x[i];}}
min =minRekursiv(y);}return min;}}
Oder so (nur die Methode):
Java:
publicstaticintminRekursiv(int[] x){int min =Integer.MAX_VALUE;int ersterWert = x[0];int letzterWert = x[x.length -1];if(x.length <2){
min = x[0];}else{int y[]=newint[x.length -1];boolean ersterKleiner = ersterWert <= letzterWert;for(int i =0; i < x.length -1; i++){if(ersterKleiner)
y[i]= x[i];else
y[i]= x[i+1];}
min =minRekursiv(y);}return min;}
oder gar so:
Java:
publicstaticintminRekursiv(int[] x){int min = x[0];if(x.length >1){int y[]=newint[x.length -1];boolean ersterKleiner = x[0]<= x[x.length -1];for(int i =0; i < x.length -1; i++){if(ersterKleiner)
y[i]= x[i];else
y[i]= x[i+1];}
min =minRekursiv(y);}return min;}