Suprimos
Lieutenant
- Registriert
- Sep. 2009
- Beiträge
- 516
Hallo,
ich soll einen Algo programmieren der die maximale Teilsumme für ein beliebiges Subarray berechnet.
Den algo habe ich bereits gefunden und implementiert. Problem ist derzeit, ich soll zusätzlich zur maximalen Teilsumme noch die Randpositionen ausgeben.
Ich habe es bisher nur geschafft die rechte Position auszugeben, allerdings weiß ich nicht wie ich die linke ausgeben soll.
Vielleicht habt ihr einen Tipp für mich.
Hier mein Code bisher:
public static int Teilsum (int [] array)
{
int max_so_far = 0;
int max_ending_here = 0;
int i;
for(i = 0; i < array.Length; i++)
{
max_ending_here = max_ending_here + array;
if(max_ending_here < 0)
max_ending_here = 0;
if(max_so_far < max_ending_here)
max_so_far = max_ending_here;
rechts=i;
}
return max_so_far;
}
PS: rechts, links würde ich erstmal global machen...
hat keiner eine idee?...
also es handelt sich hierbei um den kadane algo für max subarray...
ich soll einen Algo programmieren der die maximale Teilsumme für ein beliebiges Subarray berechnet.
Den algo habe ich bereits gefunden und implementiert. Problem ist derzeit, ich soll zusätzlich zur maximalen Teilsumme noch die Randpositionen ausgeben.
Ich habe es bisher nur geschafft die rechte Position auszugeben, allerdings weiß ich nicht wie ich die linke ausgeben soll.
Vielleicht habt ihr einen Tipp für mich.
Hier mein Code bisher:
public static int Teilsum (int [] array)
{
int max_so_far = 0;
int max_ending_here = 0;
int i;
for(i = 0; i < array.Length; i++)
{
max_ending_here = max_ending_here + array;
if(max_ending_here < 0)
max_ending_here = 0;
if(max_so_far < max_ending_here)
max_so_far = max_ending_here;
rechts=i;
}
return max_so_far;
}
PS: rechts, links würde ich erstmal global machen...
Ergänzung ()
hat keiner eine idee?...
Ergänzung ()
also es handelt sich hierbei um den kadane algo für max subarray...