Rekursion Binäre Suche

Hannek92

Mitglied
Hallo liebes Forum,
ich lerne gerade für meine Klausur. Die Binäre Suche hatten wir als Iterative Übungsaufgabe,
ich wollte mich mal daran versuchen diese rekursiv zu implementieren, jedoch kommt bei mir ständig die Fehlermeldung : missing return statement.

Habt ihr eine Ahnung, wo mein Fehler ist?
Code:
public class BinaerRek{
    public static int binaer(int [] a, int key, int anfang, int ende) {
        int m = (anfang+ende) / 2;
        if (anfang>ende) {
            return -1;
       
        } 
         else if ( a[m] == key) {
            return m;
        }
        else if ( a[m] > key){
            return binaer (a, key, anfang, m-1 );
        }else  if ( a[m] < key) {
            return binaer(a, key, m+1, ende);
        }
    }
   
    public static void main(String[] args) {
        int [] array = {1,2,3,4,5};
        int zahl = 4;
        int pos = binaer(array,zahl,0,4);
        System.out.println(pos);
    }
}


Ich dank euch für die Hilfe!!
 
Weil der Compiler nicht wissen kann, dass du mit deinem (eigentlich überflüssgen) else If Konstrukt alle Möglichkeiten abgedeckt hast

Lass das letzte else if einfach weg und gut ist

Gruß

Claus
 

Zurück
Oben