Ich sah vor kurzem Quick Sort - Computerphile
Video auf Youtube über wie Quicksort funktioniert (auf Papier) und ich habe eine Frage. Stellen Sie sich vor, dass wir ein Array haben, das zum Beispiel "27,6,19,2,15,9,10"
enthält. An erster Stelle wähle ich 10
als Pivot und das Array wird so: 9,2,6 |10| 27,19,15
. Dann wähle ich 6
als Pivot für die linke unsortierte Array und es wird 2 |6| 9
und für die richtige wähle ich 19
als ein Pivot und die richtige unsortierte Array wird 15 |19| 27
. Die Frage ist: Kann ich einen beliebigen Drehpunkt wählen, um meine Arbeit zu erleichtern (wie ich es in diesem Beispiel getan habe) oder gibt es etwas mehr?Können Sie einen beliebigen Drehpunkt in Quicksort auswählen?
Edit: Wenn ich 27 anstelle von 19 als Pivot wählte, wie das Array wäre?
Ein zufälliger Pivot ist in der Tat eine gute Wahl. Es sollte jedoch nur in Versionen verwendet werden, die zu einem alternativen Algorithmus für kurze Subarrays wechseln. Andernfalls können die Kosten der Zufallszahlengenerierung einen erheblichen Mehraufwand darstellen. –
Ich habe die Frage gesehen. In diesem einfachen Szenario mit einem 7-Elemente-Array, ist meine Technik gut oder nicht? Ich habe die Frage mit einer letzten Frage aktualisiert. Bitte schau es dir an. – lor
@ YvesDaoust eine billige Pseudo Random wäre in Ordnung. Sie könnten wahrscheinlich einfach 'count ++% array.length' verwenden. – Bohemian