einen einfachen Pseudocode in Java umzusetzen. Die Aufgabe: Der Alorithmus soll aus einer Folge X von N Zahlen die maximale Summe aller Elemente in einer Zusammenhängenden Teilfolge berechnen.
Für die Eingabefolge X[1..10]
{31, -41, 59, 26, -53, 58, 97, -93, -23, 84}
ist die Summe der Teilfolge X[3..7] mit Wert 187 die Lösung des Problems.
der Pseudocode:
maxtsum:=0;
for u:=1 to N do
for o:=u to N do
begin
{bestimme die Summe der Elemente in der Teilfolge X[u..o]}
Summe:= 0
for i := u to o do Summe := Summe + X;
{bestimme den größeren der beiden Werte Summe und maxtsume}
maxtsumme := max(Summe, maxtsumme)
end
und mein Quellcode sieht dann so aus:
Liegt wahrscheinlich weniger daran, dass mein Java schlecht ist, als vielmehr daran, dass ich die Funkionsweise des Algoritmus nicht peile.
Wär echt dankbar für Hilfe
Für die Eingabefolge X[1..10]
{31, -41, 59, 26, -53, 58, 97, -93, -23, 84}
ist die Summe der Teilfolge X[3..7] mit Wert 187 die Lösung des Problems.
der Pseudocode:
maxtsum:=0;
for u:=1 to N do
for o:=u to N do
begin
{bestimme die Summe der Elemente in der Teilfolge X[u..o]}
Summe:= 0
for i := u to o do Summe := Summe + X;
{bestimme den größeren der beiden Werte Summe und maxtsume}
maxtsumme := max(Summe, maxtsumme)
end
und mein Quellcode sieht dann so aus:
Java:
public class Teilsumme {
static int Teilsum(int[] array){
int maxtsum = 0;
for(int u = 1; u< array.length; u++){
for (int o= u; o<array.length; o++){
maxtsum +=array[o];
int summe = 0;
for (int i = u; i<=o; i++){
summe =+ array[i];
if (maxtsum < summe)
maxtsum=summe;
}
}
}
return maxtsum;
}
public static void main(String[] args){
int Teilsum = Teilsum(new int[]{31,-41,59,26,-53,58,97,-93, -23, 84});
System.out.println(Teilsum);
}
}
Liegt wahrscheinlich weniger daran, dass mein Java schlecht ist, als vielmehr daran, dass ich die Funkionsweise des Algoritmus nicht peile.
Wär echt dankbar für Hilfe