Java Fehler bei suchalgorithmus

h3nDr1k

Cadet 3rd Year
Registriert
Jan. 2008
Beiträge
40
-erledigt-
 
Zuletzt bearbeitet:
es müsste doch immer heißen
Code:
retrun binaereSuche (gesuchteNr, start, ende);
denn sonst verwirfst du ja dein Ergebnis immer sofort wieder.
 
danke für den tipp, es wird aber immer noch bei jeder eingebenen zahl "null" zurückgegeben^^
 
Die Abfrage macht auch keinen Sinn:
Code:
 while (start <= ende && start >=0 && ende <=0)
Start soll kleiner oder gleich sein wie Ende, Start muss größer oder gleich 0 sein aber Ende muss kleiner oder gleich 0 - ergibt auch keinen Sinn ^^


Und ja, die Rekursion kannste komplett entfernen

funktioniert das?
Code:
    public Kunde binaereSuche(int gesuchteNr, int start, int ende)
    {
        int mitte = (start + ende) / 2;
        
        while (start <= ende)
        {
               mitte = (start + ende) / 2;
	        if (kundenliste[mitte].getKundennummer() == gesuchteNr)
	        {
	            return (kundenliste[ergebnis]);
	        }
	        
	        else if (kundenliste[mitte].getKundennummer() < gesuchteNr)
	        {
	            start = mitte + 1;
	        }
	        
	        else if (kundenliste[mitte].getKundennummer() > gesuchteNr)
	        {
	            ende = mitte - 1;
	        }
	    }
	    
	    if (kundenliste[mitte].getKundennummer() != gesuchteNr)
	    {
	        return (null);
	    }
	    
	    return (kundenliste[mitte]);
	}
}
 
Zuletzt bearbeitet:
hab fehler selbst gefunden -.-

die while schleife war falsch; ende <=0 ist natürlich kappes; dann hatte ich noch kundenliste[10] statt kundenliste[8] da stehen
edit;
danke für deine mühen 1668mib!
ich editier mal den code im 1. beitrag
 
Zurück
Oben