M
markus
Gast
Code:
public class binsuche2 {
static final int N = 10;
static int[] a = { -1, 2, 7, 8, 12, 13, 15, 26, 66, 77, 92 };
static int zahl = 15; // zu suchende Zahl
// static int left = 1;
// static int right = N+1;
private static int suche(int a[], int zahl, int start, int end)
{
int posi = -1;
if (start < end) {
int middle = (start + end) / 2;
if (zahl > a[middle]) {
suche(a, zahl, middle + 1, end);
}
else if (zahl < a[middle]) {
suche(a, zahl, start, middle - 1);
}
else {
posi = middle;
}
}
return (posi);
}
static void ausgabe() {
System.out.print("Daten:\n");
for(int i=1; i<=N; i++) {
System.out.print(" "+ a[i]);
}
System.out.print("\n");
}
public static void main(String[] args) {
// ausgabe();
int sucheabc = suche(a, zahl, 0, 10);
if (sucheabc==-1) {
System.out.print(zahl +" wurde nicht gefunden");
}
else {
System.out.print(zahl +" wurde gefunden beim Index:"+ sucheabc);
}
}
}
Irgendwie gibt das viech jedes mal als posi "-1" aus , bzw zahl nicht gefunden. ...
Hab wohl irgendwo nen krassen Denkfehler .. habs leider nicht ganz so mit Java , und unser Informatiklehrer hilft nur den cracks die eigentlich keine hilfe bräuchten
von daher vielen dank für eure hilfe !