const arr = [1, 2, 3, 4, 5];
for (let i = arr.length - 1; i > 0; i--) {
const j = Math.floor(Math.random() * (i + 1));
[arr[i], arr[j]] = [arr[j], arr[i]];
}
console.log(arr); 📥 Inputs:
arr = [1, 2, 3, 4, 5]
❓ ¿Cuál es el output?
Ingresa tu respuesta abajo
💡 Explicación
Este es el algoritmo de Fisher-Yates (también conocido como Knuth shuffle), inventado por Ronald Fisher y Frank Yates en 1938. Es el método más eficiente para mezclar aleatoriamente un arreglo con complejidad O(n). Itera desde el final hacia el inicio, intercambiando cada elemento con uno aleatorio de las posiciones anteriores (incluyéndose a sí mismo). ¿Sabías que este algoritmo fue creado originalmente usando papel y lápiz, décadas antes de las computadoras modernas?
¿Qué hace este código? 🎲