Kapitel 11: "Techniken der Programmentwicklung"

"NeedlemanWunsch.java"


public class NeedlemanWunsch{
private int[][] E;
private String n, m;

public NeedlemanWunsch(String a, String b){
n = a; m = b;
E = new int[n.length()+1][m.length()+1];
initialisiere();
}

public void initialisiere(){
// Starteintrag wird auf 0 gesetzt
E[0][0] = 0;

// fülle die erste Zeile und erste Spalte mit 0-en
for (int i=1; i<=n.length(); i++)
E[i][0] = 0;
for (int j=1; j<=m.length(); j++)
E[0][j] = 0;
}

private int cost(char a, char b){
if (a==b) return 1;
else return 0;
}

public int compare(){
for (int i=1; i<=n.length(); i++)
for (int j=1; j<=m.length(); j++)
E[i][j] = Math.max(E[i-1][j-1]
+ cost(n.charAt(i-1), m.charAt(j-1)),
Math.max(E[i-1][j], E[i][j-1]));
return E[n.length()][m.length()];
}

public static void main(String[] args){
String a = "Hallo Waldfee";
String b = "Hola fee";
NeedlemanWunsch NW = new NeedlemanWunsch(a, b);
System.out.println("Ergebnis: "+NW.compare());
}
}

Picksel Media Marco Block © 2006-2009 – ImpressumKontakt
Gestaltung und Umsetzung Tobias Losch, www.picksel-media.de