Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Zahlenfolgen, die zu n^2 Laufzeit beim Quicksort führen (https://www.delphipraxis.net/99192-zahlenfolgen-die-zu-n%5E2-laufzeit-beim-quicksort-fuehren.html)

Nikolas 8. Sep 2007 10:25


Zahlenfolgen, die zu n^2 Laufzeit beim Quicksort führen
 
Hallo

Ich bereite mich gerade auf meine Info2 Klausur vor und habe eine Frage gefunden, bei der ich erstmal keine Antwort habe:

Zitat:

Geben Sie drei unterschiedliche Zahlenfolgen der Länge 9 (mit den Elementen 1-9 ) an,
die bei der Sortierung mit Quicksort zu einer worst-case-Laufzeit f führen. (Als Pivotelement wird immer das Element am rechten Rand der Folge gewählt.)
Der Quicksort läuft um so schlechter, je ungleicher die beiden Teile nach einem Divide-Schritt sind. Im schlimmsten Fall habe ich also eine 'Hälfte' mit n-1 Elementen und eine mit einem Element. Das passiert sicher dann wenn ich eine sortierte Eingabe habe und Pivot wie angegeben wähle. Da es egal ist, ob die Folge aufsteigend oder absteigend sortiert ist, habe ich schon mal zwei Lösungen. (Jedenfalls, wenn man die Anzahl der Vergleiche zählt. Bei den Vertauschungen ist die in der richtige Reihenfolge sortierte Zahlenfolge deutlich besser).
Nur eine dritte fehlt mir.

jfheins 8. Sep 2007 14:15

Re: Zahlenfolgen, die zu n^2 Laufzeit beim Quicksort führen
 
Wenn das:
1 2 3 4 5 6 7 8 9
und das:
9 8 7 6 5 4 3 2 1
zu einer Worst-Case-Laufzeit führt, sollte das:
2 1 3 4 5 6 7 8 9
und das:
8 9 7 6 5 4 3 2 1
doch auch ein Worst-Case Verhalten provozieren, oder?

Edit: Oder eine dieser Folgen:

2 3 4 5 6 7 8 9 1

8 7 6 5 4 3 2 1 9

5 4 6 3 7 2 8 1 9

Ist doch gar nicht so schwer :stupid:

Die Bedingung ist ja im Grunde, dass bei einer beliebigen jeder Zahl alle Zahlen links davon entweder alle größer oder alle kleiner sind ;)

Nikolas 8. Sep 2007 14:25

Re: Zahlenfolgen, die zu n^2 Laufzeit beim Quicksort führen
 
> Die Bedingung ist ja im Grunde, dass bei einer beliebigen Zahl alle Zahlen links davon entweder alle größer oder alle kleiner sind

Das hast du aber schön gesagt :shock: :mrgreen:

Jetzt seh ichs auch. Danke schön. Ich habe einfach übersehen, dass ich nach der Wahl jedes Pivotelements neu entscheiden darf, ob die Zahlen links davon alle größer sind, oder kleiner und diese Wahl nicht für alle gilt, was dann ausschließlich auf meine Lösungen geführt hat.

Vielen Dank

jfheins 8. Sep 2007 18:11

Re: Zahlenfolgen, die zu n^2 Laufzeit beim Quicksort führen
 
Zitat:

Zitat von Nikolas
> Die Bedingung ist ja im Grunde, dass bei einer beliebigen Zahl alle Zahlen links davon entweder alle größer oder alle kleiner sind

Das hast du aber schön gesagt :shock: :mrgreen:

Jetzt seh ichs auch. Danke schön. Ich habe einfach übersehen, dass ich nach der Wahl jedes Pivotelements neu entscheiden darf, ob die Zahlen links davon alle größer sind, oder kleiner und diese Wahl nicht für alle gilt, was dann ausschließlich auf meine Lösungen geführt hat.

Vielen Dank

Freut mich, geholfen zu haben :)

Aber ich habe meine Aussage nochmal korrigiert, damit sie auch richtig ist :mrgreen:

Diese Fragen, die immer eine Antwort mehr fordern als offensichtlich sind, mag ich auch nicht gerne :mrgreen:


Alle Zeitangaben in WEZ +1. Es ist jetzt 18:14 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz