Ich hab grad versucht einen ganz einfachen insertion sort algorithmus zu schreiben, aber leider stimmt irgendwas nicht und ich finde meinen denkfehler nicht.
ich habe ein array myFlights von objekten vom typ "Flight". Diese Flight-Objecte haben jeweils ein integer attribut "number" nach dem ich sie sortieren möchte.
dafür möchte ich das array durchlaufen und jeweils das aktuelle element an die richtige stelle (absteigend sortiert) einer (zuvor leeren) ArrayList "flightList" einfügen.
zunächstmal als einfach das erste element einfügen:
flightList.add(myFlights[0]);
dann gehe ich das array durch und schaue jeweils, ob das arrayelement größer ist als das aktuelle flightList element. wenn ja füge ich ein, wenn nein gehe ich ein flightList element weiter. wenn das ende der flightList erreicht wird füge ich ein.
jetzt habe ich damit ausprobiert 3 objekte mit den nummern 0 2 und 5 zu sortieren und bekomme fälschlicherweise folgende ausgabe:
5 0 2
woran könnte das liegen?
wäre für jede hilfe dankbar
ich habe ein array myFlights von objekten vom typ "Flight". Diese Flight-Objecte haben jeweils ein integer attribut "number" nach dem ich sie sortieren möchte.
dafür möchte ich das array durchlaufen und jeweils das aktuelle element an die richtige stelle (absteigend sortiert) einer (zuvor leeren) ArrayList "flightList" einfügen.
zunächstmal als einfach das erste element einfügen:
flightList.add(myFlights[0]);
dann gehe ich das array durch und schaue jeweils, ob das arrayelement größer ist als das aktuelle flightList element. wenn ja füge ich ein, wenn nein gehe ich ein flightList element weiter. wenn das ende der flightList erreicht wird füge ich ein.
Code:
for(int i = 1; i < myFlights.length; i++){
for(int j = 0; j < flightList.size(); j++){
if(myFlights[i].getReservations() > flightList.get(j).getReservations() || flightList.size() == j + 1){
flightList.add(j, myFlights[i]);
break;
}
}
}
jetzt habe ich damit ausprobiert 3 objekte mit den nummern 0 2 und 5 zu sortieren und bekomme fälschlicherweise folgende ausgabe:
5 0 2
woran könnte das liegen?
wäre für jede hilfe dankbar