Może mi ktoś wytłumaczyć jak ten algorytm działa? Krok po kroku
function quicksort(arr) {
if (arr.length <= 1) {
return arr;
}
var arrLength = arr.length;
var pivotPosition = Math.floor(arrLength / 2);
var pivotValue = arr[pivotPosition];
var less = [],
more = [],
same = [];
for (var i = 0; i < arrLength; i++) {
if (arr[i] === pivotValue) {
same.push(arr[i]);
}
else if (arr[i] < pivotValue) {
less.push(arr[i]);
}
else {
more.push(arr[i]);
}
}
return quicksort(less).concat(same, quicksort(more));
}
quicksort([4,5,2,3,6,7,9,1,8]);