Hi,
ich habe für ein Projekt den Quine-McClusky Algorithmus zur Minierung von Logikfunktionen implementiert. Nun versuche ich diesen hinsichtlich Laufzeit zu optimieren. Einen Großteil der Zeit verbringt das Programm in folgender Funktion:
String a und b sind immer gleichlang und bestehen aus '0', '1' und 'X'. Die Funktion prüft ob sich zwei Strings in genau einer Position unterscheiden.
Jemand Verbesserungsvorschläge?
ich habe für ein Projekt den Quine-McClusky Algorithmus zur Minierung von Logikfunktionen implementiert. Nun versuche ich diesen hinsichtlich Laufzeit zu optimieren. Einen Großteil der Zeit verbringt das Programm in folgender Funktion:
Java:
public int[] differsMaxOneChar(String a, String b) {
debug.println("Comparing " + a + " to " + b);
int[] returnValue = {1, 0};
boolean differs = false;
for (int i = 0; i < a.length(); i++) {
if (!(a.charAt(i) == b.charAt(i))) {
if (differs) {
returnValue[0] = 0;
break;
} else {
differs = true;
returnValue[1] = i;
}
}
}
return returnValue;
}
String a und b sind immer gleichlang und bestehen aus '0', '1' und 'X'. Die Funktion prüft ob sich zwei Strings in genau einer Position unterscheiden.
Jemand Verbesserungsvorschläge?