Estoy tratando de mejorar esto para usar la recursividad pero, sinceramente, soy nuevo y me resulta difícil saber exactamente dónde usar una recursividad o llamar a la función 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; }