Algoritmos Vittini

Descargar como docx, pdf o txt
Descargar como docx, pdf o txt
Está en la página 1de 6

Nombre: Acxel Alejandro

Apellido: Boitel Ferreras

Matricula: 2024-0822

Carrera: Ciberseguridad

Nombre de la materia: Introduccion a la elaboracion de


algoritmos

Nombre de profesor: Gilberto Vittini

Fecha: 16/05/2024
Introducción
En este trabajo veremos algunos diferentes tipos de algoritmos y sus características de
cada uno de estos, Los algoritmos son secuencias de instrucciones que permiten resolver
problemas o realizar tareas específicas de manera eficiente y sistemática. Son
fundamentales en la informática y en diversas disciplinas, desde la inteligencia artificial
hasta la optimización de procesos industriales. También se puede decir que Los
algoritmos son como recetas que siguen las computadoras para resolver problemas o
realizar tareas específicas. Son súper importantes en todo lo que hacemos con
tecnología, desde que nuestros teléfonos nos muestren la ruta más rápida hasta que
nuestros datos estén seguros en internet. Hay muchos tipos de algoritmos, cada uno con
sus propias características y usos, y a continuación vamos a explorar algunos de ellos.
Los algoritmos son conjuntos de instrucciones diseñadas para realizar tareas o resolver
problemas. Existen diversos tipos de algoritmos, cada uno con características
específicas que los hacen adecuados para diferentes tipos de problemas. A continuación,
se presentan algunos de los tipos más comunes de algoritmos junto con sus
características:

1. Algoritmos de Búsqueda
Lineal (secuencial):
 Descripción: Busca un elemento recorriendo secuencialmente una lista.
 Complejidad: O(n), donde n es el número de elementos.
 Uso: Listas desordenadas.

Binaria:
 Descripción: Busca un elemento en una lista ordenada dividiendo repetidamente el
espacio de búsqueda a la mitad.
 Complejidad: O(log n).
 Uso: Listas ordenadas.

2. Algoritmos de Ordenamiento
Burbuja (Bubble Sort):
 Descripción: Compara y cambia elementos adyacentes si están en el orden
incorrecto, repitiendo el proceso hasta que la lista esté ordenada.
 Complejidad: O(n²).
 Uso: Pequeñas listas debido a su baja eficiencia.

Quicksort:
 Descripción: Divide la lista en sublistas más pequeñas y las ordena de manera
recursiva.
 Complejidad: O(n log n) en promedio.
 Uso: Listas grandes, debido a su alta eficiencia promedio.

Mergesort:
 Descripción: Divide la lista en sublistas, las ordena y luego las fusiona.
 Complejidad: O(n log n).
 Uso: Listas grandes, especialmente cuando se requiere estabilidad en el
ordenamiento.
3. Algoritmos de Grafos
Dijkstra:
 Descripción: Encuentra la ruta más corta desde un nodo origen a todos los demás
nodos en un grafo con pesos no negativos.
 Complejidad: O(V²) o O((V + E) log V) usando colas de prioridad, donde V es el
número de vértices y E el número de aristas.
 Uso: Problemas de rutas y redes.

Kruskal:
 Descripción: Encuentra el árbol de expansión mínima en un grafo.
 Complejidad: O(E log E).
 Uso: Conectividad mínima en redes.

4. Algoritmos de Optimización
Programación Lineal:
 Descripción: Optimiza una función lineal sujeta a restricciones lineales.
 Complejidad: Depende del método (Simplex, O(n!); Karmarkar, O(n³.5L²)).
 Uso: Problemas de asignación de recursos.
Algoritmos Genéticos:
 Descripción: Utiliza técnicas inspiradas en la evolución natural, como selección,
mutación y cruce, para encontrar soluciones óptimas.
 Complejidad: Variable.
 Uso: Problemas complejos y no lineales, como diseño de circuitos y optimización de
rutas.

5. Algoritmos de Machine Learning


Regresión Lineal:
 Descripción: Modela la relación entre variables dependientes e independientes
mediante una línea recta.
 Complejidad: O(n).
 Uso: Predicción y análisis de tendencias.
Redes Neuronales:
 Descripción: Modelos computacionales inspirados en el cerebro humano, capaces
de aprender y realizar predicciones.
 Complejidad: Depende de la arquitectura de la red y del algoritmo de
entrenamiento.
 Uso: Reconocimiento de patrones, clasificación, y predicción.

6. Algoritmos Criptográficos
RSA:
 Descripción: Algoritmo de cifrado asimétrico que utiliza dos claves (pública y
privada).
 Complejidad: Basado en la factorización de números grandes, lo que lo hace
computacionalmente difícil de romper.
 Uso: Seguridad en la transmisión de datos.
AES (Advanced Encryption Standard):
 Descripción: Algoritmo de cifrado simétrico que utiliza bloques de datos.
 Complejidad: Muy eficiente para el cifrado y descifrado.
 Uso: Seguridad en datos almacenados y transmitidos.

7. Algoritmos de Compresión
Huffman:
 Descripción: Algoritmo de compresión sin pérdida que utiliza frecuencias de
caracteres para construir un árbol binario y asignar códigos de longitud variable.
 Complejidad: O(n log n).
 Uso: Compresión de texto y datos.

LZ77:
 Descripción: Algoritmo de compresión basado en la sustitución de repeticiones con
referencias a posiciones anteriores en la cadena.
 Complejidad: Variable.
 Uso: Compresión de archivos y datos.
Conclusión

En resumen, los algoritmos son herramientas esenciales que permiten a las


computadoras y sistemas resolver problemas de manera eficiente y precisa, no
solamente a las computadoras sino también cualquier problema de la vida diaria. A lo
largo de esta exploración, hemos visto una variedad de algoritmos, cada uno diseñado
para tareas específicas desde encontrar elementos en listas y ordenar datos, hasta
optimizar recursos y asegurar la información. Cada tipo de algoritmo tiene sus propias
características y ventajas, lo que los hace adecuados para diferentes aplicaciones y
contextos.
Entender la diversidad de algoritmos y cómo aplicarlos es crucial para desarrollar
soluciones tecnológicas efectivas. La correcta elección del algoritmo puede mejorar
significativamente el rendimiento de una aplicación, reducir el tiempo de procesamiento
y garantizar la seguridad de los datos. Además, en un mundo cada vez más impulsado
por la tecnología, los algoritmos desempeñan un papel fundamental en innovaciones que
van desde la inteligencia artificial hasta la criptografía y la optimización de recursos.
Al final del día, los algoritmos no solo nos ayudan a resolver problemas complejos, sino
que también nos permiten hacer más con menos esfuerzo y recursos. Ya sea que
estemos optimizando rutas de entrega, mejorando la seguridad en internet o
simplemente organizando una lista de compras, los algoritmos son la columna vertebral
de las soluciones informáticas modernas. Con un conocimiento sólido de los diferentes
tipos de algoritmos y sus aplicaciones, estamos mejor equipados para enfrentar los
desafíos tecnológicos del presente y del futuro.

También podría gustarte