Welche Laufzeit ist schneller? (Normal einsortieren oder Bucketsort)

Neue Frage »

Auf diesen Beitrag antworten »
Indyfan751 Welche Laufzeit ist schneller? (Normal einsortieren oder Bucketsort)

Meine Frage:
Hallo,

ich habe 100 Werte, die in 30 Behälter einsortiert werden müssen.

Der Code sieht so aus:

code:
1:
2:
3:
4:
5:
6:
for(int i = 0; i < 30; i++) {
  if(Behälter == i) {
    // Einfügen
  }
}

Also wäre dies als Laufzeit O(30).

Nun habe ich mir gedacht, dass der Code schneller funktionieren kann, wenn ich Bucketsort nutze. Aber ich glaube das funktioniert nicht.

Hat jemand sonst noch Ideen, wie ich den Code beschleunigen kann?

Meine Ideen:
Hab keine...
 
Auf diesen Beitrag antworten »
as_string

Ich verstehe ehrlich gesagt den Code nicht. Dein Behälter ist also auch ein int, oder wie soll sonst der Vergleich funktionieren? Sind die Bezeichner mit Umlauten drin erlaubt???
Dann ist die Laufzeit so ja der Ordnung 100 mal 30, nicht nur 30, weil Du ja 100 Werte einsortieren willst, oder?
Wie sollen die Werte einsortiert werden? Sind das nur 100 Werte, die alle zwischen 0 und 30 liegen? Sind die Werte in einem Array?

Soll das ganze am Ende ein Bucketsort werden oder was genau willst Du erreichen?

Gruß
Marco
Auf diesen Beitrag antworten »
indyfan752

Nein. Das sind 100 Kalenderdaten eines Monats und müssen in 30 Behälter, die die Tage eines Monats symbolisieren, einsortiert werden.

Die 100 Kalenderdaten sind schon nach Datum sortiert.

Trotzdem beträgt die Laufzeit bei 500 Millisekunden. Kann man das nicht schneller machen?
Auf diesen Beitrag antworten »
as_string

Ja aber dann musst Du doch auf jeden Fall einmal über die 100 Kalender-Daten laufen, jedes nach seinem Tag-im-Monat fragen und in den entsprechenden "Behälter" einsortieren. Du musst doch nicht über die 30 Behälter laufen, was was das denn?

Gruß
Marco
 
 
Neue Frage »
Antworten »


Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »