Wenn Sie einen Schnellsortieralgorithmus haben und immer das kleinste (oder größte) Element als Drehpunkt auswählen; Habe ich Recht, wenn Sie einen bereits sortierten Datensatz bereitstellen, erhalten Sie immer die schlechteste Leistung, unabhängig davon, ob Ihre "bereits sortierte" Liste in aufsteigender oder absteigender Reihenfolge vorliegt?
Ich denke, wenn Sie immer das kleinste Element für Ihren Pivot auswählen, spielt es keine Rolle, ob Ihre 'bereits sortierte' Eingabe nach aufsteigend oder absteigend sortiert ist, da die Teilmenge, die relativ zu Ihrem Pivot sortiert werden soll, immer die ist gleiche Größe?
Antworten:
Die Worst-Case-Komplexität für Quicksort ist . Dies wird erreicht, indem Drehpunkte ausgewählt werden, die die Menge so teilen, dass eine Gruppe nur ein einziges Mitglied hat. Mit einem schlechten Pivot-Picking-Algorithmus kann dies leicht erreicht werden, indem ein Ende eines sortierten Satzes ausgewählt wird. Ihre Annahme ist richtig.Θ(n2)
quelle
Ja! Du denkst, es ist absolut richtig! Und wie von Yuval Filmus richtig erwähnt, wird die LaufzeitΘ(n2)
quelle
Ein Subarray hat oder Element, während das andere Elemente hat; daher ist es :0 1 (n−1) O(n2)
quelle