C
carom
Gast
Hallo!
Habe gerade ein Brett vor dem Kopf und komme nicht weiter, obwohl es sicherlich so einfach ist.
Schön und gut, folgende Zahlenreihe:
5 1 2 3 4
4 sei der Pivot für Durchlauf 1.
Mit i = 0 fange ich von links an, nach einem Element >= 4 zu suchen und werde mit der 5 auch sofort fündig. Mit j = 4 fange ich von rechts an nach einem Element <= dem Pivot zu suchen und werde auch direkt fündig, mit dem Pivot selbst. Dann tauschen und es sieht so aus:
4 1 2 3 5
Schon mal besser als zuvor, aber ohne überhaupt weiterzumachen nun meine Denkblockade: es läuft ja immer noch der erste Durchgang mit Pivot 4. Allerdings ist i mittlerweile auf 1 erhöht und wandert nach rechts, d.h. die 4 ganzs links wird gar nie mehr angerührt in Durchgang 1. Aber dann steht sie nach diesem Durchgang ja definitiv auch nicht an ihrer endgültigen Stelle (was aber so sein müsste)?
Ich weiß, dass das eigentlich keinen Thread wert ist weil es irgend ein kleines Problem ist, aber sehe gerade den Wald vor lauter Bäumen nicht.
Danke.
Habe gerade ein Brett vor dem Kopf und komme nicht weiter, obwohl es sicherlich so einfach ist.
- Generell gilt bei Quicksort ja, dass man für das beste Reultat das Pivot-Element möglichst so wählen sollte, dass es ca. gleich viele kleinere und größere Elemente drum herum gibt.
- Davon abgesehen ist es aber prinzipiell egal, was als Pivot-Element gewählt wird. Viele Algorithmen nehmen ja auch einfach Random() her, um den Pivot zu bestimmen.
- Nach einem Durchlauf sollte das Pivot-Element ja bereits schon an seiner endgültigen Stelle stehen und es geht mit einem anderen Pivot im nächsten Durchlauf weiter.
Schön und gut, folgende Zahlenreihe:
5 1 2 3 4
4 sei der Pivot für Durchlauf 1.
Mit i = 0 fange ich von links an, nach einem Element >= 4 zu suchen und werde mit der 5 auch sofort fündig. Mit j = 4 fange ich von rechts an nach einem Element <= dem Pivot zu suchen und werde auch direkt fündig, mit dem Pivot selbst. Dann tauschen und es sieht so aus:
4 1 2 3 5
Schon mal besser als zuvor, aber ohne überhaupt weiterzumachen nun meine Denkblockade: es läuft ja immer noch der erste Durchgang mit Pivot 4. Allerdings ist i mittlerweile auf 1 erhöht und wandert nach rechts, d.h. die 4 ganzs links wird gar nie mehr angerührt in Durchgang 1. Aber dann steht sie nach diesem Durchgang ja definitiv auch nicht an ihrer endgültigen Stelle (was aber so sein müsste)?
Ich weiß, dass das eigentlich keinen Thread wert ist weil es irgend ein kleines Problem ist, aber sehe gerade den Wald vor lauter Bäumen nicht.
Danke.
Zuletzt bearbeitet: