Быстрая сортировка: выбор точки
При реализации Quicksort одна из вещей, которую вы должны сделать, это выбрать опору. Но когда я смотрю на псевдокод, подобный приведенному ниже, неясно, как мне выбрать пивот. Первый элемент списка? Что-то другое?
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))
Может ли кто-нибудь помочь мне понять концепцию выбора точки опоры и требуют ли разные сценарии разных стратегий.