Hallo, ich hoffe ihr könnt mir weiterhelfen =), hier ist die fragestellung (es geht um die binäre Suche bei einem Array):
c) Verwenden Sie die implementierte Funktion [habe ich in der vorherigen Aufgabe erstellt], um eine sortierte Reihung vom Basistyp int und eine weitere ganze Zahl vom Bildschirm einzulesen. Ist die Zahl in der Reihung vorhanden, soll deren Position innerhalb der Reihung, sonst -1, am Bildschirm ausgegeben werden.
Meine Lösung:
sooo...der Compiler liefert mir 4 errors, ich weiß nicht wie ich aus der Eingabeaufforderung kopiere...
2 errors sind bei: int sol = binSearch (int[] x, val);
und die anderen 2 bei: System.outprintln(int sol);
Ich bin noch ein blutiger Anfänger wie man wahrscheinlich merkt und ich hoffe ich mache irgend einen dummen Fehler, der einfach zu beheben ist und ihr könnt mir sagen was
Ich hoffe ich mach nicht all zviel falsch (erster post), ich bin für jede Hilfe dankbar.
c) Verwenden Sie die implementierte Funktion [habe ich in der vorherigen Aufgabe erstellt], um eine sortierte Reihung vom Basistyp int und eine weitere ganze Zahl vom Bildschirm einzulesen. Ist die Zahl in der Reihung vorhanden, soll deren Position innerhalb der Reihung, sonst -1, am Bildschirm ausgegeben werden.
Meine Lösung:
Java:
public class Binsearch{
public static void main (String[] args){
int[] x = readIntegerArray();
int val = In.readInt();
int sol = binSearch (int[] x, val);
System.out.println(int sol);
}
static int[] readIntegerArray (){
int[] a;
a = new int [30];
for (int i=0; i<a.length; i++){
System.out.println("Zahlen eingeben:");
a[i] = In.readInt();
}
return a;
}
static int binSearch (int[] x, int val){
int low = 0;
int high = x.length-1;
while (low <= high) {
int m = (low + high) / 2;
if (x[m] == val) return m;
else if (val > x[m]) low = m + 1;
else high = m - 1;
}
return -1;
}
}
sooo...der Compiler liefert mir 4 errors, ich weiß nicht wie ich aus der Eingabeaufforderung kopiere...
2 errors sind bei: int sol = binSearch (int[] x, val);
und die anderen 2 bei: System.outprintln(int sol);
Ich bin noch ein blutiger Anfänger wie man wahrscheinlich merkt und ich hoffe ich mache irgend einen dummen Fehler, der einfach zu beheben ist und ihr könnt mir sagen was
Ich hoffe ich mach nicht all zviel falsch (erster post), ich bin für jede Hilfe dankbar.