Quicksort: Escolhendo o pivô
Ao implementar o Quicksort, uma das coisas que você precisa fazer é escolher um pivô. Mas quando olho para o pseudocódigo como o abaixo, não está claro como devo escolher o pivô. Primeiro elemento da lista? Algo mais?
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))
Alguém pode me ajudar a entender o conceito de escolher um pivô e se os diferentes cenários exigem estratégias diferentes?