1.1.1 Características de los algoritmos y tipos
En los sistemas computacionales, necesitamos herramientas que nos permitan resolver problemas de manera eficaz y eficiente. Estos problemas abarcan desde tareas matemáticas sencillas y cálculos complejos, hasta la optimización de procesos, la búsqueda y organización de datos, e incluso la toma de decisiones automatizadas. Para llevar a cabo estas tareas, recurrimos a los algoritmos.
Existen diversas características que hacen a los algoritmos herramientas valiosas en la computación. Entre estas características se encuentran la precisión en los pasos a seguir, la finitud o capacidad de llegar a un final en un número determinado de pasos, y la eficiencia en cuanto a tiempo y recursos utilizados.
Además, los algoritmos pueden clasificarse en varios tipos según su propósito o diseño, como los algoritmos de búsqueda, ordenamiento, optimización y toma de decisiones. Cada tipo de algoritmo responde a necesidades distintas y es fundamental en la implementación de soluciones computacionales efectivas en una amplia gama de aplicaciones.
Según (Cairó, 2006) un algoritmo es “un conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un resultado o resolver un problema”.
A continuación, se presenta un ejemplo de un algoritmo simple que podemos utilizar en la vida cotidiana.
Algoritmo: Preparación de una taza de té
- Reunir los ingredientes y herramientas (bolsa de té, agua, taza, cuchara, y opcionalmente, azúcar o miel).
- Llenar una tetera o recipiente con agua.
- Calentar el agua en la estufa o en el microondas hasta que hierva.
- Colocar la bolsa de té en la taza.
- Verter el agua caliente en la taza.
- Dejar reposar la bolsa de té en el agua durante 3-5 minutos, dependiendo de la intensidad deseada.
- Agregar azúcar o miel al gusto y remover (opcional).
- Retirar la bolsa de té de la taza.
Inicio
Fin
Los algoritmos se pueden clasificar de diversas maneras, siendo una de las más populares la clasificación según el método o estrategia que utilizan para resolver problemas. Esta clasificación permite entender cómo los algoritmos abordan las soluciones y qué tipo de problemas pueden resolver de manera óptima.
Tipos de algoritmos según su estrategia
- Algoritmos Avaros
- Programación Dinámica
- Algoritmos de Búsqueda
- Búsqueda Exhaustiva: Recorrer cada elemento en el conjunto de datos desde el inicio hasta el final hasta encontrar el elemento deseado, o hasta confirmar que no está presente.
- Búsqueda Binaria: Útil en conjuntos de datos ordenados. Este método divide los elementos en mitades sucesivamente, descartando la mitad donde el elemento no puede estar, hasta localizar el elemento o confirmar su ausencia. Esta técnica es mucho más eficiente que la búsqueda exhaustiva en conjuntos grandes y ordenados.
- Algoritmos de Ordenamiento
- Burbuja: Compara y intercambia elementos adyacentes para ordenar la secuencia.
- Inserción: Inserta cada elemento en su posición correcta dentro de un conjunto ordenado.
- Mezcla (Merge Sort): Divide los elementos en partes, los ordena y luego los combina.
- Ordenamiento Rápido (Quicksort): Divide y organiza elementos alrededor de un pivote, permitiendo un ordenamiento eficiente y rápido.
Los algoritmos avaros, o greedy algorithms, se caracterizan por seleccionar en cada paso la mejor opción disponible en ese momento. Esta estrategia consiste en hacer elecciones locales óptimas en busca de una solución global, priorizando el resultado inmediato. Este tipo de algoritmo es útil en problemas donde esta estrategia garantiza una solución óptima.
La programación dinámica se emplea en problemas que implican el recálculo de resultados parciales, lo cual puede ser costoso en términos de tiempo. Este enfoque optimiza el proceso al almacenar los resultados parciales en estructuras, como arreglos, para recuperarlos en lugar de recalcularlos. Esta técnica es especialmente efectiva en problemas donde subproblemas se repiten, permitiendo mejorar considerablemente la eficiencia.
Los algoritmos de búsqueda se utilizan para localizar un elemento específico dentro de un conjunto de datos, a menudo empleando un identificador único conocido como clave. Algunas estrategias comunes incluyen:
Los algoritmos de ordenamiento reorganizan los elementos en un arreglo de forma ascendente o descendente. Algunos de los métodos de ordenamiento más conocidos son: