Master1991
Lieutenant
- Registriert
- Okt. 2007
- Beiträge
- 689
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?
Code:
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?