Maximale Teilsumme +Grenzen < Algor.+Datenstr. < Theoretische Inform. < Hochschule < Informatik < Vorhilfe
|
Status: |
(Frage) beantwortet | Datum: | 20:48 Fr 19.05.2006 | Autor: | Fahnder |
Hi,
ich habe mal eine Frage. Bei einer Aufgabe muss ich die Maximale Summe der Teilfolgen und deren Grenzwerte. Ich weiss, dass ich dafür Arrays benutzen muss, allerdings weiss ich nicht, wie ich die einbauen soll. Habe das Zuweisen undso bei Arrays noch nicht verstanden.
also hier ist meine bisherige lösung, aber wie gesagt, es fehlt in der main- funktion noch du array zuweisung
public class Aufgabe14 {
int F[]={-1,3,2,-4,5,-7,2,2,-3,5,-2,3,-8,2};
public static int MaxSumme (int[]F)
{
int[][] Summe = new int[F.length][F.length];
// für i >= j ist Summe[i][j] = Teilsumme i bis j = F[i]+F[i+1]+...+F[j]
for(int i = 0; i < F.length; i++)
for (int j = 0; j < F.length; j++)
Summe[i][j] = 0;
int max = Integer.MIN_VALUE;
Summe[0][0] = F[0];
for (int Ende = 1; Ende < F.length; Ende++)
// Teilsummen 0 .. 1, ..., 0 .. n-1
Summe[0][Ende] = Summe[0][Ende-1] + F[Ende];
// auf die vorherige Teilsumme wird das nächste Element addiert
for (int Anfang = 1; Anfang < F.length; Anfang++)
for (int Ende = Anfang; Ende < F.length; Ende++)
Summe[Anfang][Ende] = Summe[Anfang-1][Ende] - F[Anfang-1];
// Teilsumme fängt um ein Element nach rechts an: um dieses Element kleiner
// jetzt kann das maximale Element gesucht werden:
for (int Anfang = 0; Anfang < F.length; Anfang++)
for (int Ende = 0; Ende < F.length; Ende++)
if (max < Summe[Anfang][Ende])
// überprüfen, ob größer als die bisher größte
max = Summe[Anfang][Ende];
if (F.length == 0)
return 0;
// die Summe der leeren Teilfolge ist 0
else
return max;
}
public static void main(String[]args){
System.out.println((int)Anfang+ (int)Maximum+ (int)Ende);
}
}
Wäre schon, wenn mir jemand mal weiter helfen könnte.
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Fahnder
|
|
|
|
Status: |
(Antwort) fertig | Datum: | 16:38 Sa 20.05.2006 | Autor: | Frank05 |
Sieh dir am besten mal den Thread hier an. Es scheint sich dabei wohl um die gleiche Aufgabe zu handeln. Dort findest du auch einen Ansatz zum Zurückgeben der benötigten Werte an die main Funktion und eine kleine Diskussion dazu. Ansonsten einfach nochmal melden, falls du noch weitere Fragen dazu hast.
|
|
|
|