Servus Community,
Ich hätte wieder eine Frage bezüglich meiner Methode. Angabe ist als Bild hinzugefügt.
Mein Problem ist dass das zurückgebende Array die Reihenfolge der sortierten Array besitzt und nicht die originale. Sprich mein Araay gibt {6,5,9,0}, statt {9,5,6,0} zurück. Könnt ihr meinen Code bitte verbessern oder mir sagen was ich machen kann. Hier die Aufgabe:
und hier mein Code:
Ich hätte wieder eine Frage bezüglich meiner Methode. Angabe ist als Bild hinzugefügt.
Mein Problem ist dass das zurückgebende Array die Reihenfolge der sortierten Array besitzt und nicht die originale. Sprich mein Araay gibt {6,5,9,0}, statt {9,5,6,0} zurück. Könnt ihr meinen Code bitte verbessern oder mir sagen was ich machen kann. Hier die Aufgabe:
und hier mein Code:
Code:
import java.util.*;
public class Bestellung
{
public Bestellung()
{
}
public int[] bestelle(int menge, double[] preis, int[]lieferbar)
{
ArrayList <Integer> lieferschein = new ArrayList<Integer>();
int nochBenoetigt = menge;
int gesamtMenge = 0;
for (int i =0; i < lieferbar.length;i++)
{
gesamtMenge += lieferbar[i];
}
if (gesamtMenge < menge)
{
return null;
}
for(int i = 0; i < preis.length-1; i++)
{
for (int j =1; j < preis.length; j++)
{
if(preis[j-1] >= preis[j])
{
Double sort = preis [j];
preis [j] = preis[j-1];
preis[j-1] = sort;
Integer speicher = lieferbar [j];
lieferbar [j] = lieferbar[j-1];
lieferbar[j-1] = speicher;
}
}
}
for (int i =0; i < preis.length; i++)
{
if(lieferbar[i] <= nochBenoetigt)
{
lieferschein.add(lieferbar[i]);
nochBenoetigt -= lieferbar[i];
}
else if(lieferbar[i] > nochBenoetigt)
{
lieferschein.add(nochBenoetigt);
nochBenoetigt = 0;
}
}
int [] fertig = new int [lieferschein.size()];
Iterator <Integer> it = lieferschein.iterator();
for(int i =0; it.hasNext(); i++)
{
fertig[i] = it.next();
}
return fertig;
}
}