Quicksort: wybór osi obrotu
Podczas implementacji Quicksort, jedną z rzeczy, które musisz zrobić, to wybrać pivot. Ale kiedy patrzę na pseudokod podobny do poniższego, nie jest jasne, jak powinienem wybrać oś obrotu. Pierwszy element listy? Coś innego?
function quicksort(array)
var list less, greater
if length(array) ≤ 1
return array
select and remove a pivot value pivot from array
for each x in array
if x ≤ pivot then append x to less
else append x to greater
return concatenate(quicksort(less), pivot, quicksort(greater))
Czy ktoś może mi pomóc zrozumieć koncepcję wyboru osi obrotu i tego, czy różne scenariusze wymagają różnych strategii.