¿Qué es un algoritmo? Todo lo que necesitas saber sobre el

Share on facebook
Share on linkedin
Share on twitter
Share on email

Seguramente habréis escuchado hablar de él u os habréis preguntado qué es y para qué sirve. Y es que esta palabra es de origen árabe, la cual viene de Al-Khwarizmi el matemático árabe del siglo IX, el cual es reconocido por enunciar paso a paso las reglas para las operaciones matemáticas básicas con decimales.

Para responder a la pregunta de ¿qué es un algoritmo? pues bien, un algoritmo es un procedimiento para la resolución de un problema. Partiendo de unos datos de entrada sobre los que se aplicarán una serie de operaciones matemáticas para llegar a un resultado óptimo. Una pequeña diferencia en la selección de estos datos de entrada, es la proporción en que se combinan y las operaciones que aplica, determinaría un resultado distinto.

qué es un algoritmo

¡OJO! no debemos confundir las palabras algoritmo con logaritmo ya que estas son cosas distintas.

Y es que según Wikipedia, un logaritmo es un número que indica una proporción λόγος (logos) el sentido de proporción, y ἀριθμός (arithmos) significado número, definiéndolo literalmente como «un número que indica una relación o proporción«. Refiriéndose a la proposición que fue hecha por John Napier en su teorema fundamental.

Características de los algoritmos

Todos los algoritmos presentan unas características comunes, las cuales son:

  • Deben ser precisos: tiene que indicar el orden de realizado de todos los pasos.
  • Deben estar totalmente definidos: si seguimos el algoritmo un par de veces, debemos obtener el mismo resultado cada vez que lo hagamos.
  • Debe ser finito: este debe terminarse en algún momento (tener un número finito de pasos).
  • Que sean legibles: el texto que este le describe debe ser claro, de tal modo que nos permita entenderlo y no sea complicado de leer.
  • Estos deben definirse en tres partes: input (entrada), procesamiento y output (salida).

Partes de las que consta el algoritmo.

Podemos comprobar que todo algoritmo consta de tres partes:

  • Input (entrada): y es que en la entrada o input, será donde introducimos los datos que el algoritmo necesita para empezar a operar.
  • Procesamiento: con los datos recibidos en el input (entrada), el algoritmo empezará a realizar una serie de cálculos lógicos para resolver el problema.
  • Output (salida): donde podremos ver los resultados obtenidos, a partir de la transformación de los valores de entrada durante el proceso.

Tipos de algoritmos existentes

Podemos encontrar diversos tipos de algoritmos, todo en función de diferentes criterios. Según como describen los pasos a seguir, podremos distinguir entre algoritmos cualitativos y cuantitativos, si estos lo hace por secuencias lógicas o por cálculos matemáticos, o si estos necesitan o no un ordenador para la resolución, podremos clasificarlos en computacionales y no computacionales.

Podemos distinguir los siguientes tipos de algoritmos:

  • Algoritmos de búsqueda.
  • Algoritmos voraces.
  • Algoritmos probabilísticos.
  • Programación dinámica.
  • Algoritmos de ordenamiento.
Website Creation Mind Map ¿Qué es un algoritmo? Todo lo que necesitas saber sobre el

A continuación pasamos a explicar un poco más acerca de estos tipos de algoritmos mencionados.

Algoritmos de búsqueda

Este tipo de algoritmo localiza uno o varios elementos que puedan presentar una serie de propiedades dentro de la estructura de datos. Podemos diferenciar diversos tipos de búsquedas. Destacando estos dos tipos:

  • Búsqueda binaria: cuando tenemos un conjunto de elementos ordenados, este nos hace una comparación con el elemento que tenemos ubicado justo en el medio, si no son iguales, continúa la búsqueda en la mitad donde puede estar. Y así continuamente en unos intervalos de elementos cada vez más pequeños.
  • Búsqueda secuencial: compara el elemento a localizar con el elemento del conjunto hasta que hayamos comparado todos los elementos o hasta encontrarlo.

Algoritmos voraces

Los algoritmos voraces escogen en cada paso del proceso el mejor elemento y comprueban que este pueda formar parte de una solución global factible y normalmente veremos que son utilizados para resolver problemas de optimización.

Puede que los algoritmos voraces no encuentren la solución global más óptima, ya que este al tomar una decisión solo tiene en cuenta la información de las decisiones que se han tomado hasta el momento y no las futuras que podría adoptar.

Casos en los que los algoritmos voraces pueden alcanzar soluciones óptimas son:

  • Algoritmo de Dijkstra.
  • Problema de la mochila fraccional (KP).
  • Codificación Huffman.

Algoritmos probabilísticos

Suele usar una fuente de aleatoriedad como parte de su lógica. Mediante un muestreo totalmente aleatorio de la entrada, puede llegar a una solución que puede no ser del todo óptima, pero que para el problema planteado sí que es la adecuada.

Utilizado en situaciones con limitaciones de tiempo y memoria o cuando se puede acertar una correcta solución de media. Se repite el algoritmo varias veces con diferentes submuestras aleatorias y comparando resultados para que sea más probable ofrecer una buena solución.

Podemos encontrar dos tipos principales de algoritmos probabilísticos:

  • Algoritmo de Las Vegas: ejecutado en un periodo de tiempo concreto. Es posible que el tiempo se agote y no encuentre ninguna solución, pero si encuentra una solución en ese tiempo ésta será totalmente correcta.
  • Algoritmo de Montecarlo: Hay alguna probabilidad de que este no acierte o no pueda llegar a una solución dependiendo de la entrada, pero aumentando el tiempo de cálculo, se puede reducir la probabilidad de error.

Programación dinámica

Este es un método de resolución de problemas en el que dividiremos un problema complejo en subproblemas y calculamos y almacenamos las soluciones. Suele reducir el tiempo de ejecución de un algoritmo al optimizar la recursión.

Pero, debe tener subestructuras óptimas y subproblemas superpuestos para poder aplicarse a un problema.

Algunos de los casos donde se utiliza son:

  • Problema de la mochila.
  • Serie de Fibonacci (sucesión de números que comienza con “0” y “1”, a partir de ellos cada número es resultado de la suma de los dos siguientes).

Algoritmos de ordenamiento

Podemos decir que «reorganizan» los elementos de un listado según una relación de orden. Podemos ver que las más habituales son las de orden lexicográfico y orden numérico.

Algunos de ellos son:

  • Ordenamiento rápido: elegimos un elemento del conjunto (pivote) y al resto los reubicamos a cada uno de sus lados, todo en función de si estos son mayores o menores que el pivote que estamos tomando como referencia. Vamos repitiendo el procedimiento para cada subconjunto.
  • Ordenamiento de burbuja: va comparando cada elemento de la lista a ordenar con el siguiente e intercambia su posición si esta no está en el orden adecuado. La lista se suele revisar varias veces hasta que no necesite más intercambios.
  • Ordenamiento por selección: empezamos colocando el elemento más pequeño disponible en cada una de las posiciones de la lista de forma consecutiva.
pexels cottonbro 4709289 ¿Qué es un algoritmo? Todo lo que necesitas saber sobre el

Conclusión final sobre qué es un algoritmo

Para finalizar, ya hemos visto que un algoritmo no es más que un conjunto de instrucciones para conseguir un fin específico. El algoritmo se encuentra muy presente tanto en el ámbito informático como en nuestro día a día. Existiendo así diversos tipos de algoritmos que dependiendo la situación en la que nos encontremos en ese preciso momento, nos ayudarán a llegar a la solución que necesitemos.

Si te ha servido, deja un comentario

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Más entradas
Blog

¿Qué es Link Building?

Puede ser que en alguna ocasión te hayas topado con este término mientras hacías algún estudio o simplemente mientras navegabas por la red y entonces

Categorías
¿Quieres impulsar tu negocio?
escríbenos y manténte en contacto
Desarrollo de tiendas online Garber Informática
Contacta con nosotros