El siguiente esquema se proporciona como una descripción general y una guía temática sobre algoritmos :
Un algoritmo es una secuencia finita y bien definida de instrucciones o reglas para resolver un problema o realizar un cálculo. [ 1 ] Los algoritmos son fundamentales para la informática , las matemáticas , la investigación operativa , la inteligencia artificial , [ 2 ] la criptografía , la compresión de datos , los gráficos por computadora , la bioinformática y muchos otros campos. [ 3 ] El estudio de los algoritmos incluye su diseño, prueba de corrección , eficiencia , complejidad computacional e implementación en programas informáticos . [ 4 ] [ 5 ]
Naturaleza de los algoritmos
- Algoritmo : secuencia finita de instrucciones para resolver un problema o realizar un cálculo.
- Programa informático : implementación de algoritmos e instrucciones de procesamiento de datos en un lenguaje de programación.
- Estructura de datos : organización de los datos utilizada por los algoritmos.
- Heurística : método práctico de resolución de problemas que puede no garantizar una solución óptima.
- Pseudocódigo : notación informal para describir algoritmos.
- Especificación : declaración formal o informal de lo que se pretende hacer con un algoritmo.
- Estado : información almacenada que se utiliza durante un cálculo.
- Análisis de terminación : estudio de si un algoritmo finalmente se detiene.
- Máquina de Turing : modelo matemático de computación utilizado en la teoría de la computabilidad.
Historia de los algoritmos
- Algoritmo euclidiano : antiguo algoritmo para calcular el máximo común divisor.
- Muhammad ibn Musa al-Khwarizmi — matemático cuyo nombre latinizado se asocia con la palabra algoritmo
- Lógica algorítmica : estudio de programas y algoritmos basado en la lógica.
- Teoría de la computabilidad : estudio de lo que se puede computar.
- Tesis de Church-Turing : tesis sobre la naturaleza de la computación efectiva.
- Máquina de Turing : modelo que formaliza la computación.
- Cálculo lambda : sistema formal utilizado en el estudio de la computación.
- Arquitectura de Von Neumann : arquitectura informática que influye en la implementación práctica de algoritmos.
Análisis de algoritmos
- Análisis de algoritmos : estudio de la corrección y eficiencia de los algoritmos.
- Análisis asintótico : análisis del comportamiento del algoritmo a medida que aumenta el tamaño de la entrada.
- Notación Big O : notación de límite superior para las tasas de crecimiento.
- Notación Omega grande : notación de límite inferior para las tasas de crecimiento.
- Notación Big Theta : notación de límites estrictos para las tasas de crecimiento.
- Complejidad temporal : cantidad de tiempo que un algoritmo utiliza a medida que cambia el tamaño de la entrada.
- Complejidad espacial : cantidad de memoria que utiliza un algoritmo a medida que cambia el tamaño de la entrada.
- Mejor caso, peor caso y caso promedio : formas comunes de análisis del rendimiento de los algoritmos.
- Análisis amortizado : análisis del costo promedio durante una secuencia de operaciones.
- Análisis competitivo (algoritmo en línea) : análisis de algoritmos en línea comparados con algoritmos óptimos fuera de línea.
- Corrección (informática) : propiedad que indica que un algoritmo cumple con su especificación.
- Invariante de bucle : condición utilizada para demostrar la corrección de algoritmos iterativos.
- Relación de recurrencia : ecuación que se utiliza a menudo para analizar algoritmos recursivos.
- Teorema maestro (análisis de algoritmos) : teorema para resolver muchas recurrencias de divide y vencerás.
Paradigmas de diseño de algoritmos
- Búsqueda por fuerza bruta : método para comprobar exhaustivamente las soluciones candidatas.
- Algoritmo de divide y vencerás : técnica que divide un problema en subproblemas más pequeños.
- Reducir y vencer : técnica que reduce un problema a una instancia más pequeña.
- Programación dinámica : técnica para resolver problemas con subproblemas superpuestos y subestructura óptima.
- Algoritmo voraz : algoritmo que toma decisiones óptimas a nivel local.
- Retroceso : técnica de búsqueda que descarta soluciones parciales que no pueden conducir a soluciones válidas.
- Ramificación y acotación : técnica de búsqueda que utiliza límites para eliminar soluciones candidatas.
- Algoritmo aleatorio : algoritmo que utiliza la aleatoriedad como parte de su lógica.
- Algoritmo de aproximación : algoritmo que encuentra soluciones casi óptimas para problemas de optimización difíciles.
- Algoritmo en línea : algoritmo que recibe la entrada de forma incremental.
- Algoritmo paralelo : algoritmo diseñado para la computación paralela.
- Algoritmo distribuido : algoritmo diseñado para sistemas distribuidos.
- Algoritmo de transmisión : algoritmo para procesar flujos de datos con memoria limitada.
- Algoritmo cuántico : algoritmo diseñado para computadoras cuánticas [ 6 ]
Estructuras de datos y algoritmos relacionados
Matrices, listas y secuencias
Árboles
Hashing y conjuntos
Estructuras de datos de grafos
Sistema operativo y algoritmos de gestión de memoria
Algoritmos de búsqueda
- Búsqueda lineal
- Algoritmo de búsqueda binaria
- Búsqueda por interpolación
- Búsqueda exponencial
- Búsqueda de salto
- Búsqueda en profundidad
- Búsqueda en amplitud
- Búsqueda primero los mejores resultados
- Búsqueda por haz
- Algoritmo de búsqueda A*
- El algoritmo de Dijkstra
- Búsqueda en profundidad iterativa
- Búsqueda de árboles en Montecarlo
Estadísticas de clasificación y orden
ordenación por comparación
Ordenación sin comparación
Estadísticas de pedidos
Algoritmos de grafos
Recorrido de grafos
Caminos más cortos
Árboles que se extienden y conectividad
Flujo de red y coincidencia
Coloreado de grafos y problemas de grafos difíciles
algoritmos de cadenas
- Algoritmo de búsqueda de cadenas
- Algoritmo de Knuth-Morris-Pratt
- Algoritmo de búsqueda de cadenas de Boyer-Moore
- Algoritmo de Rabin-Karp
- Algoritmo de Aho-Corasick
- distancia de Levenshtein
- Editar distancia
- Subsecuencia común más larga
- Subcadena común más larga
- árbol de sufijos
- Matriz de sufijos
- Transformación Burrows-Wheeler
- Expresión regular
- Análisis sintáctico
- Analizador Earley
- Algoritmo CYK
Algoritmos numéricos y matemáticos
Aritmética y teoría de números
Álgebra lineal
Optimización numérica y aproximación
Algoritmos de optimización
- Programación lineal
- Algoritmo simplex
- Método del punto interior
- Programación entera
- Programación dinámica
- Descenso de gradiente
- Descenso de gradiente estocástico
- El método de Newton
- Método cuasi-Newton
- Algoritmo de Broyden-Fletcher-Goldfarb-Shanno
- multiplicador de Lagrange
- Problema de satisfacción de restricciones
- Búsqueda local (optimización)
- Subir colinas
- Búsqueda tabú
- Algoritmo genético
- Algoritmos de optimización por colonia de hormigas
- Optimización por enjambre de partículas
- Algoritmo evolutivo
Inteligencia artificial y algoritmos de aprendizaje automático
Búsqueda y planificación
Aprendizaje supervisado
Aprendizaje no supervisado
Aprendizaje por refuerzo
Juego algorítmico
Descubrimiento de algoritmos asistido por IA
Algoritmos criptográficos
Algoritmos de clave simétrica
Algoritmos de clave pública
Hashing y autenticación
algoritmos de compresión
Compresión sin pérdidas
Técnicas de compresión con pérdida
Algoritmos de geometría computacional
Gráficos por computadora y algoritmos de procesamiento de imágenes
- Algoritmo de línea de Bresenham
- Relleno de inundación
- Renderizado por líneas de exploración
- Almacenamiento en búfer Z
- Ray casting
- Trazado de rayos (gráficos)
- trazado de rutas
- Sombreado Phong
- Mapeo de texturas
- Mapeo de relieve
- Mapeo normal
- cubos marchantes
- Detector de bordes Canny
- Consenso de muestra aleatoria (RANSAC)
- Transformación de características invariantes a la escala
- Hough transforma
- Tallado de vetas
Algoritmos de bases de datos y recuperación de información
Algoritmos distribuidos, concurrentes y de red
Sistemas distribuidos
Concurrencia
Redes de contactos
Bioinformática y algoritmos científicos
Clases de complejidad y límites algorítmicos
Listas de algoritmos
Personas notables
Figuras tempranas y fundamentales
- Al-Juarismi — homónimo del término algoritmo
- Charles Babbage — pionero de la informática
- Ada Lovelace escribió uno de los primeros algoritmos para el Motor Analítico.
- Alan Turing : la teoría de la computabilidad y la máquina de Turing
- Alonzo Church — cálculo lambda y teoría de la computabilidad
- John von Neumann — Arquitectura de von Neumann y análisis numérico
Diseño y análisis de algoritmos
- Donald Knuth : análisis de algoritmos y El arte de la programación informática.
- Edsger W. Dijkstra — El algoritmo de Dijkstra y la programación estructurada
- Robert W. Floyd — Algoritmo de Floyd-Warshall y análisis de algoritmos
- Tony Hoare — Quicksort y la lógica de Hoare
- Michael O. Rabin — Algoritmos aleatorios y teoría de autómatas
- Richard M. Karp — Completitud NP y optimización combinatoria
Teoría de la complejidad
- Stephen Cook — Teorema de Cook-Levin y NP-completitud
- Leonid Levin — NP-completitud y teoría de la complejidad computacional
- Juris Hartmanis — teoría de la complejidad computacional
- Richard E. Stearns — teoría de la complejidad computacional
- Avi Wigderson : aleatoriedad y complejidad computacional
Algoritmos de grafos, redes y optimización
- Richard Bellman : programación dinámica y algoritmos de ruta más corta
- George Dantzig — algoritmo simplex y programación lineal
- Jack Edmonds — Combinatoria de emparejamientos y poliédrica
- LR Ford Jr. — Algoritmo de Ford-Fulkerson y problemas de flujo máximo
- DR Fulkerson : algoritmo Ford-Fulkerson y flujos de red.
- Robert Tarjan — algoritmos de grafos y estructuras de datos
Criptografía y algoritmos aleatorios
- Whitfield Diffie — Intercambio de claves Diffie-Hellman
- Martin Hellman — Intercambio de claves Diffie-Hellman
- Ron Rivest — RSA y algoritmos criptográficos
- Adi Shamir — RSA y algoritmos criptográficos
- Leonard Adleman — RSA y computación de ADN
- Shafi Goldwasser — criptografía y complejidad computacional
Inteligencia artificial y algoritmos de búsqueda
- John McCarthy : inteligencia artificial e inteligencia artificial simbólica.
- Marvin Minsky : inteligencia artificial y modelos computacionales
- Herbert A. Simon — Búsqueda heurística e inteligencia artificial
- Allen Newell : búsqueda heurística e inteligencia artificial
- Arthur Samuel : los primeros algoritmos de aprendizaje automático y juegos.
- Judea Pearl — Redes bayesianas y razonamiento probabilístico
Véase también
Referencias
- ↑ "Algoritmo" . Encyclopædia Britannica . Consultado el 4 de mayo de 2026 .
- ↑ "Algoritmos de inteligencia artificial (IA): una visión general completa" . Tableau . Consultado el 5 de mayo de 2026 .
- ↑ "Ciencias de la computación: algoritmos y complejidad" . Encyclopædia Britannica . Consultado el 4 de mayo de 2026 .
- ↑ "Análisis de algoritmos" . Encyclopædia Britannica . Consultado el 4 de mayo de 2026 .
- ↑ "¿Qué es un algoritmo? | Introducción a los algoritmos" . GeeksforGeeks . 20 de diciembre de 2025. Consultado el 5 de mayo de 2026 .
- ↑ "Técnicas de diseño de algoritmos" . GeeksforGeeks . 28 de julio de 2025. Consultado el 5 de mayo de 2026 .
Lecturas adicionales
- Cormen, Thomas H.; Leiserson, Charles E.; Rivest, Ronald L.; Stein, Clifford (2022). Introducción a los algoritmos (4ª ed.). Prensa del MIT . ISBN 978-0-262-04630-5.
- Knuth, Donald E. (1968). El arte de la programación informática . Addison-Wesley . ISBN 978-0-201-89683-1.
- Kleinberg, Jon ; Tardos, Éva (2005). Diseño de algoritmos . Educación Pearson . ISBN 978-0-321-29535-4.
- Skiena, Steven S. (2020). Manual de diseño de algoritmos (3.ª ed.). Springer . ISBN 978-3-030-54255-9.
Enlaces externos
Contenido multimedia relacionado con algoritmos en Wikimedia Commons
Algoritmos en Wikibooks
Materiales de aprendizaje relacionados con el tema: Algoritmos en Wikiversidad
- Algoritmos
- Esquemas de informática e ingeniería
- Esquemas