Hallo zusammen,
habe ein dickes Problem, und zwar habe ich eine Aufgabenstellung bekommen, die lautet man solle eine Zahl eingeben, und das Programm berechnet dann an welcher Stelle die Zahl sich im Array befindet. Quasi eine Binäre Suche.
Bis jetzt habe ich es schon geschafft auszugeben, an welcher Stelle sich die Zahl befindet. Ich muss jetzt nur noch das Array durchlaufen um zu überprüfen, ob die eingegeben Zahl sich auch wirklich im Array befindet. Wenn nicht soll eben eine Fehlermeldung ausgegeben werden. Könnte ihr mir da vielleicht weiterhelfen ?
habe ein dickes Problem, und zwar habe ich eine Aufgabenstellung bekommen, die lautet man solle eine Zahl eingeben, und das Programm berechnet dann an welcher Stelle die Zahl sich im Array befindet. Quasi eine Binäre Suche.
Bis jetzt habe ich es schon geschafft auszugeben, an welcher Stelle sich die Zahl befindet. Ich muss jetzt nur noch das Array durchlaufen um zu überprüfen, ob die eingegeben Zahl sich auch wirklich im Array befindet. Wenn nicht soll eben eine Fehlermeldung ausgegeben werden. Könnte ihr mir da vielleicht weiterhelfen ?
Java:
import java.util.Scanner;
public class BinäreSuche {
public static void main(String args[]) {
int array[] = { 1, 5, 8, 9, 11, 22, 23, 59, 77, 88 };
int eingabe = 0;
int obergrenze = array.length;
int untergrenze = 0;
int mitte = (obergrenze - untergrenze) / 2;
int i = 0;
Scanner input = new Scanner(System.in);
System.out.print("Zu suchende Zahl eingeben: ");
eingabe = input.nextInt();
input.close();
while (eingabe != array[mitte]) {
if (eingabe < array[mitte]) {
obergrenze = mitte - 1;
mitte = (obergrenze - untergrenze) / 2;
if (eingabe == array[mitte]) {
System.out.println(eingabe + " ist an der Stelle "
+ (mitte + 1));
}
}
else if (eingabe > array[mitte]) {
untergrenze = mitte + 1;
mitte = (untergrenze + obergrenze) / 2;
if (eingabe == array[mitte]) {
System.out.println(eingabe + " ist an der Stelle "
+ (mitte + 1));
}
}
}
}
}
Zuletzt bearbeitet von einem Moderator: