- Ordenar Arrays con sort()
- ¿Por qué preguntan sobre ordenamiento en entrevistas?
- Introducción a los Algoritmos de Ordenamiento
Cuando trabajamos con datos en forma de listas o arrays, es común querer organizarlos en un orden específico, como de menor a mayor o alfabéticamente. JavaScript nos proporciona una forma sencilla de hacerlo con el método sort(), pero también es importante conocer cómo funcionan los algoritmos de ordenamiento por dentro.
Esta habilidad es útil, no solo en entrevistas de trabajo, sino también para mejorar nuestro pensamiento algorítmico y aprender a resolver problemas de manera eficiente.
Ordenar Arrays con sort()
En JavaScript, ordenar un array es bastante fácil gracias al método sort(). Este método modifica directamente el array original y ordena los elementos en función de la comparación que definamos.
const numbers = [8, 3, 10];
// Ordenamos de menor a mayor
numbers.sort((a, b) => a - b);
console.log(numbers); // => [3, 8, 10]
// Si queremos orden inverso, podemos usar reverse()
numbers.reverse();
console.log(numbers); // => [10, 8, 3]
¿Por qué preguntan sobre ordenamiento en entrevistas?
Muchas entrevistas técnicas piden que implementemos un algoritmo de ordenamiento desde cero. Aquí no se trata de reinventar la rueda, sino de evaluar aspectos clave en un programador:
💼 Conocimiento de algoritmos: Nos ayuda a entender mejor cómo funciona la informática.
💼 Habilidad para programar: La capacidad de construir una solución sin depender de funciones predefinidas.
💼 Pensamiento lógico y algorítmico: Resolver problemas de manera estructurada.
Introducción a los Algoritmos de Ordenamiento
Existen varios métodos para ordenar arrays, pero uno de los más populares en programación educativa es el ordenamiento de burbuja (bubble sort). 🫧 Aunque en la vida real no se usa mucho debido a su ineficiencia, es útil para aprender los fundamentos del ordenamiento.
¿Cómo funciona el Ordenamiento de Burbuja?
El ordenamiento de burbuja recorre el array muchas veces, comparando elementos en pares y realizando intercambios cuando uno es mayor que el siguiente.
🫧 En cada pasada, el número más grande "flota" hasta su posición correcta, como una burbuja en el agua.
🫧 Se repiten los recorridos hasta que no haya más elementos fuera de orden.
Implementación en JavaScript
Veamos cómo podemos escribir una función que ordene un array con el método de burbuja:
// Función que ordena un array con el algoritmo de burbuja
const bubbleSort = (coll) => {
let stepsCount = coll.length - 1;
let swapped;
do {
swapped = false;
// Recorre el array comparando elementos adyacentes
for (let i = 0; i < stepsCount; i += 1) {
if (coll[i] > coll[i + 1]) {
// Intercambiamos los elementos si están en mal orden
const temp = coll[i];
coll[i] = coll[i + 1];
coll[i + 1] = temp;
swapped = true; // Marcamos que hubo un intercambio
}
}
stepsCount -= 1; // Reducimos el rango a evaluar en la siguiente iteración
} while (swapped); // Continuamos hasta que no haya más intercambios
return coll;
};
console.log(bubbleSort([3, 2, 10, -2, 0])); // => [ -2, 0, 2, 3, 10 ]
Explicación paso a paso
- Bucle interno (
for): Recorre el array comparando elementos adyacentes, intercambiándolos si están en el orden incorrecto. - Bucle externo (
do...while): Repite el proceso hasta que no haya más intercambios, lo que significa que el array ya está ordenado.
Cada pasada por el array coloca el mayor número restante al final, reduciendo progresivamente el número de elementos a revisar.
Resumen
- En JavaScript, la manera más fácil de ordenar un array es usando
sort(). - En las entrevistas técnicas, pedir implementar un algoritmo de ordenamiento ayuda a evaluar el pensamiento lógico del candidato.
- Ordenamiento de burbuja es un algoritmo simple que ordena elementos comparándolos en pares y moviendo los más grandes hacia el final.
- Aunque no es eficiente en aplicaciones reales, entenderlo es clave para mejorar nuestras habilidades algorítmicas.
Ahora intenta escribir tu propia versión de bubbleSort sin mirar la teoría. ¡Es un excelente ejercicio para entrenar la lógica de programación!
Materiales adicionales
- Array.prototype.sort() / MDN Web Docs
- Bucle do...while / MDN Web Docs
- Visualización de algoritmos de ordenamiento.
Para acceder completo a curso necesitas un plan básico
El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.