Me gustaría saber por qué estoy obteniendo un ciclo infinito aquí. Simplemente no quiero pasar estos valores iniciales, por lo que si son undefined
se calculan automáticamente. Es solo para limpiar mi llamada de función para usar solo un parámetro. Si los paso, todo funciona bien y el proceso termina. ¿Alguien puede ayudar? Gracias¿Por qué estoy obteniendo un ciclo infinito cuando no defino los parámetros?
function merge(array, lower, half, upper){
//Suppressed for the sake of brevity
}
function mergeSort(array, lower, upper){
if(!lower && !upper){ //take a look here
lower = 0;
upper = array.length - 1;
}
if(lower < upper){
var half = Math.floor((lower + upper)/2);
mergeSort(array, lower, half);
mergeSort(array, half + 1, upper);
merge(array, lower, half, upper);
}
}
var array = [8, 3, 6, 4, 1, 0, 23, 12, 15, 63];
mergeSort(array); //infinite loop here
console.log(array);
Gracias por arreglar sus nombres de variables. :) Desea 'if (inferior == undefined && upper == undefined)' en lugar de 'if (! Lower &&! Upper)'. –
@ElliotBonneville eche un vistazo a cómo se ve ahora mi función Merge; https://gist.github.com/3165423 - ¡puedes dejar comentarios en la página principal para mejoras! ¡Gracias por la crítica positiva! =) – renatoargh