Hallo nochmal,
also ich habe ein Program geschrieben, das fast vollständig funktioniert. Kurz dazu: 2 Arrays werden lexigrofisch vergleicht.
Leider im Falle a[]=b[] stürzt das Programm ab, da ein Overstockflow fehler passiert. Wobei das m.M.n. gar nicht passieren könnte wegen dem Befehl in Zeile 24
Ich stelle jetzt nur 3 Methoden rein, zum Verständnis und da der Rest m.M.n. entweder richtig ist oder zu komplett anderen Algorithmen gehört.
also ich habe ein Program geschrieben, das fast vollständig funktioniert. Kurz dazu: 2 Arrays werden lexigrofisch vergleicht.
Leider im Falle a[]=b[] stürzt das Programm ab, da ein Overstockflow fehler passiert. Wobei das m.M.n. gar nicht passieren könnte wegen dem Befehl in Zeile 24
Ich stelle jetzt nur 3 Methoden rein, zum Verständnis und da der Rest m.M.n. entweder richtig ist oder zu komplett anderen Algorithmen gehört.
Java:
public static int compareArrays(int[] a, int[] b) {
if (a.length == 0 && b.length > 0)
return -1;
else if (a.length == 0 && b.length == 0)
return 0;
else if (a.length > 0 && b.length == 0)
return 1;
else if (a[0] < b[0])
return -1;
else if (a[0] == b[0])
return compareArrays(tail(a), tail(b));
else if (a[0] > b[0])
return 1;
return 0;
}
public static int[] tail(int[] a) {
if (a.length > 1) {
for (int i = 1; i < a.length; i++)
a[0] = a[i];
return a;
}
int b[] = {}; // Fuer den letzten Durchlauf bei Länge 1
return b;
// mehrere Methoden wie cut usw.
public static void main(String[] args) {
int[][] a1 = { { 0, 2, 3 }, { 0, 2, 3, 8 } };
int[][] a2 = { { 3, 4, 7, 8 }, { 3, 4, 8, 0 } };
int[][] a3 = { { 7, 8 }, { 7, 8 } };
System.out.println(compareArrays(cut1(a1), cut2(a1)));
System.out.println(compareArrays(cut1(a2), cut2(a2)));
System.out.println(compareArrays(cut1(a3), cut2(a3))); //Fehler!! Overstockflow
// mehrere weitere Methoden die nicht zum Problem gehören
}
}
}