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.

questionAnswers(13)

yourAnswerToTheQuestion