I'm trying to improve this could to use recursion but honestly, I'm new and I find it hard to know where exactly to user a recursion or call the function self.
function part(array, left, right){
var lArray = [];
var rArray = [];
var mid = Math.floor((left + right) / 2);
var pivot = array[mid];
for (var i = left; i <= right; i++) {
if (i !== mid) {
if (array[i] < pivot) {
} }
lArray.push(array[i]);
} else {
rArray.push(array[i]);
}
for (var i = 0; i < lArray.length; i++) {
array[left + i] = lArray[i];
}
var final = left + i;
array[final] = pivot;
for (var i = 0; i < rArray.length; i++) {
array[final + 1 + i] = rArray[i];
}
return final;
}
function sort(array, left, right) {
if (right <= left) {
return array;
}
var final = part(array, left, right); sort(array, left, final – 1); sort(array, final + 1, right);
return array;
}