Quicksort: Elegir el pivote
Al implementar Quicksort, una de las cosas que debe hacer es elegir un pivote. Pero cuando veo un pseudocódigo como el de abajo, no está claro cómo debo elegir el pivote. ¿Primer elemento de la lista? ¿Algo más?
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))
¿Puede alguien ayudarme a comprender el concepto de elegir un pivote y si diferentes escenarios requieren o no diferentes estrategias?