# Binäres Suchen



## Stephani Fuhsy (5. Mrz 2010)

Hallo,
Ich habe folgendes Problem. Wir haben in der schule die Aufgabe Binäres Suchen mit java zu programmieren bekommen (am besten Rekursiv), habe bis lang folgende Hilfestellung gefunden:

[JAVA=42]
public static int sucheRekursiv(int indexAnfang, int indexEnde, char eingabeZeichen, char[] alphabet) {

	// die Mitte zwischen Anfangs- und Endindex festlegen
       	int indexMitte = indexAnfang + ((indexEnde - indexAnfang) / 2);

	// wenn das Zeichen mit dem Element des Mitteindexes übereinstimmt
       	if (alphabet[indexMitte] == eingabeZeichen) {

            // dann das zurückgeben
            return indexMitte;
        }

        //wenn das Ende der Rekursion erfolglos erreicht wurde.
        if (indexAnfang == indexMitte) {

            // sonst: kein Ergebnis (Zeichen im Alphabet nicht vorhanden)
            return -1;
        }

        // wenn Zeichen in der Mitte kleiner ist als Eingabe
       	if (alphabet[indexMitte] < eingabeZeichen) {

            // rekursiv die Suche noch mal aufrufen, diesmal aber mit neuem Indexanfang (1. Parameter)
            return sucheRekursiv(indexMitte + 1, indexEnde, eingabeZeichen, alphabet);

        } else { //if (alphabet[indexMitte] > eingabeZeichen)

            // rekursiv die Suche noch mal aufrufen, diesmal aber mit neuem Indexende (2. Parameter)
            return sucheRekursiv(indexAnfang, indexMitte - 1, eingabeZeichen, alphabet);

        }
}
[/code]

Brauchte schnell Tipps und Lösungen muss sich nicht an meine Codeausschnitt orientieren.

Danke für alle Fleisigen Helfer im Vorraus


----------



## faetzminator (5. Mrz 2010)

Ich hab den Code nicht ausgeführt, aber ich kann keinen Fehler erkennen. Rekursiv ist er ebenfalls. Was ist dein Problem oder deine Frage?


----------



## SlaterB (5. Mrz 2010)

indexAnfang + ((indexEnde - indexAnfang) / 2);
==
(indexAnfang + indexEnde) / 2;


----------



## eRaaaa (5. Mrz 2010)

Haha geil, 1:1 von Wiki kopiert *g*



> Brauchte schnell Tipps und Lösungen muss sich nicht an meine Codeausschnitt orientieren



Tipp: Sortiere dein char-Array vorher ^^
Lösung hast du ja schon =)


----------



## Firestorm87 (5. Mrz 2010)

> habe bis lang folgende Hilfestellung gefunden:





eRaaaa hat gesagt.:


> Haha geil, 1:1 von Wiki kopiert *g*


Naja er hat nie behauptet wo er das  gefunden hat... Wo ist also das Problem?

Allerdings sollte Char-Array sortieren wirklich bekannt sein, da man sonst mit den größer / kleiner Suchen echte Probleme bekommt...


----------

