Los algoritmos forman parte de casi toda la tecnología que usamos cada día. Desde buscadores hasta recomendaciones de series, estas instrucciones trabajan sin parar para procesar datos, tomar decisiones y mostrarnos resultados.
Aunque muchos piensan que son difíciles, los algoritmos son simplemente pasos ordenados que las computadoras siguen para resolver problemas.
En palabras sencillas, un algoritmo funciona como una receta: recibe ingredientes (datos), sigue un proceso claro y produce un resultado. Por ejemplo, cuando usas el GPS, el algoritmo estudia las rutas posibles, revisa el tráfico y te sugiere el camino más rápido. Todo esto ocurre en segundos, ayudándonos a tomar mejores decisiones más rápido.
En esta guía, veremos los diez algoritmos más usados en JavaScript, desde cambios básicos en textos hasta búsquedas avanzadas.
Lo que aprenderás
- Cómo hacer y analizar los 10 algoritmos más comunes en JavaScript
- Entender cuánto tiempo y espacio necesita cada algoritmo
- Usos prácticos de estos algoritmos en proyectos reales
Lo que necesitas saber antes
- Bases de JavaScript (variables, funciones, bucles, condiciones)
- Conocimientos básicos de estructuras de datos (arrays, objetos)
- Un editor de código (recomendamos VS Code)
- Node.js instalado para probar los ejemplos
Tiempo aproximado
Te tomará unas 2 horas completar este tutorial.
Algoritmos en JavaScript

1. Invertir un Texto
¿Qué hace?
Invertir un texto significa cambiar el orden de las letras, poniendo la última primero y así hasta el final. Se usa mucho para revisar palíndromos y trabajar con textos.
Código
function invertirTexto(texto) {
return texto.split("").reverse().join("");
}
console.log(invertirTexto("hola")); // Resultado: "aloh"// Explicación: // 1. texto.split("") – Separa el texto en letras individuales // 2. .reverse() – Cambia el orden de las letras // 3. .join("") – Une las letras otra vez en un texto
2. Comprobar Palíndromos
¿Qué hace?
Un palíndromo es una palabra o frase que se lee igual de izquierda a derecha y de derecha a izquierda (sin contar espacios o signos). Es útil para juegos con palabras y análisis de textos.
Código
function esPalindromo(texto) {
return texto === texto.split("").reverse().join("");
}
console.log(esPalindromo("ana")); // Resultado: true
console.log(esPalindromo("hola")); // Resultado: false3. Búsqueda Binaria
¿Qué hace?
La búsqueda binaria es una forma eficiente de encontrar un elemento en una lista ordenada. Funciona dividiendo por la mitad el área de búsqueda hasta encontrar lo que buscas.
Código
function busquedaBinaria(lista, objetivo) {
let izquierda = 0,
derecha = lista.length - 1;
while (izquierda <= derecha) {
const medio = Math.floor((izquierda + derecha) / 2);
if (lista[medio] === objetivo) return medio;
if (lista[medio] < objetivo) izquierda = medio + 1;
else derecha = medio - 1;
}
return -1; // No se encontró
}
console.log(busquedaBinaria([1, 2, 3, 4, 5], 4)); // Resultado: 3 (posición del número 4)
console.log(busquedaBinaria([1, 2, 3, 4, 5], 6)); // Resultado: -1 (no encontrado)IMPORTANTE: La búsqueda binaria solo funciona en listas ya ordenadas. Es mucho más rápida que revisar elemento por elemento en listas grandes.
4. Secuencia de Fibonacci
¿Qué hace?
La secuencia de Fibonacci es una serie donde cada número es la suma de los dos anteriores (0, 1, 1, 2, 3, 5, 8, 13…). Es un buen ejemplo de recursividad y se usa en muchos análisis de patrones.
Código básico (recursivo)
function fibonacci(n) {
if (n <= 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
console.log(fibonacci(6)); // Resultado: 85. Factorial de un Número
¿Qué hace?
El factorial de un número n (escrito como n!) es la multiplicación de todos los números enteros desde 1 hasta n. Es una operación básica en matemáticas y probabilidad.
Código recursivo
function factorial(n) {
if (n === 0) return 1;
return n * factorial(n - 1);
}
console.log(factorial(5)); // Resultado: 120 (5 * 4 * 3 * 2 * 1)6. Verificar Números Primos
¿Qué hace?
Un número primo solo puede dividirse por 1 y por sí mismo sin dejar resto. Verificar si un número es primo es muy útil en seguridad informática y teoría numérica.
Código
function esPrimo(num) {
if (num <= 1) return false;
for (let i = 2; i <= Math.sqrt(num); i++) {
if (num % i === 0) return false;
}
return true;
}
console.log(esPrimo(7)); // Resultado: true
console.log(esPrimo(4)); // Resultado: falseCONSEJO: Solo necesitamos probar hasta la raíz cuadrada del número, lo que hace este algoritmo mucho más rápido.
7. Encontrar el Mayor Valor en una Lista
¿Qué hace?
Encontrar el valor más grande en una lista es una operación básica en análisis de datos y ordenación.
Código con método rápido
function encontrarMayor(lista) { return Math.max(...lista);
}
console.log(encontrarMayor([1, 2, 3, 4, 5])); // Resultado: 58. Unir Dos Listas Ordenadas
¿Qué hace?
Unir listas ya ordenadas es parte fundamental de algoritmos de ordenación como el Merge Sort. Esta operación mantiene el orden mientras combina dos listas.
Código
function unirListasOrdenadas(lista1, lista2) {
let unida = [], i = 0, j = 0;
while (i < lista1.length && j < lista2.length) {
if (lista1[i] < lista2[j]) {
unida.push(lista1[i]);
i++;
} else {
unida.push(lista2[j]);
j++;
}
}
// Añadir elementos restantes
return unida.concat(lista1.slice(i)).concat(lista2.slice(j));
}
console.log(unirListasOrdenadas([1, 3, 5], [2, 4, 6])); // Resultado: [1, 2, 3, 4, 5, 6]9. Ordenamiento Burbuja
¿Qué hace?
El ordenamiento burbuja es uno de los métodos más simples para ordenar. Funciona comparando elementos vecinos e intercambiándolos si están en orden incorrecto.
Código
function ordenamientoBurbuja(lista) { const longitud = lista.length;
for (let i = 0; i < longitud; i++) {
for (let j = 0; j < longitud - i - 1; j++) {
if (lista[j] > lista[j + 1]) {
// Intercambiar elementos
[lista[j], lista[j + 1]] = [lista[j + 1], lista[j]];
}
}
}
return lista;
}
console.log(ordenamientoBurbuja([5, 3, 8, 4, 2])); // Resultado: [2, 3, 4, 5, 8]NOTA: El ordenamiento burbuja no es muy rápido para listas grandes, pero es fácil de entender como primer algoritmo de ordenación.
10. Máximo Común Divisor
¿Qué hace?
El MCD es el número más grande que divide a dos números sin dejar resto. El algoritmo de Euclides es un método antiguo pero muy eficiente para calcularlo.
Código (algoritmo de Euclides)
function mcd(a, b) {
if (b === 0) return a;
return mcd(b, a % b);
}
console.log(mcd(48, 18)); // Resultado: 6¿Quieres saber más? Únete a los canales oficiales de Facialix:
Usar estos algoritmos en proyectos reales y seguir practicando con más problemas te ayudará a entenderlos mejor y a mejorar tus habilidades para resolver problemas.
La mejor forma de aprender es practicando por tu cuenta y probando diferentes maneras de resolver los problemas. ¡Ánimo con tu aprendizaje!

