Algoritmo

Conecta Software
5 lectura mínima

Algoritmo, ¿qué es?

Algoritmo es un término que hace referencia a una serie de pasos que resuelven un problema, siempre cumpliendo las premisas de ser preciso, finito y determinista

Por ejemplo, una receta de cocina en la que los pasos están contados (finito), se añaden unas cantidades exactas de ingredientes en un orden determinado (preciso) y, a través del cocinado de dichos ingredientes se obtiene un resultado (determinista), la receta se considera un algoritmo. 

Tipos de representaciones de un algoritmo

Las principales maneras de representación de un algoritmo son a través de código fuente haciendo uso de un lenguaje de programación, a través de pseudocódigo, a través de un diagrama de flujo o a través de un sistema formal.

Código fuente

Un código fuente se define como una serie de instrucciones secuenciales, escritas en un lenguaje de programación determinado que, a través de un compilador o intérprete, éste puede ser ejecutado en una máquina.  

Pseudocódigo

El pseudocódigo de un programa informático representa la descripción del algoritmo en un lenguaje de alto nivel, sin que éste sea capaz de ser procesado por una máquina. Se considera uno de los pasos previos a la escritura del código fuente.

Diagrama de flujo

Un diagrama de flujo representa de manera gráfica un algoritmo, teniendo en cuenta todos los posibles resultados y condiciones dentro de dicho gráfico. De manera general, se utiliza el lenguaje UML, el cual, es un lenguaje a través del que se representa el flujo de trabajo y que hace uso de una serie de símbolos de manera universal.

Sistema formal

Un sistema formal es una manera de representar un problema haciendo uso de un sistema abstracto, a través de reglas de inferencia, axiomas, y un lenguaje formal, y que tiene por objetivo demostrar teoremas.

Todo algoritmo es Turing computable

Complejidad computacional de un algoritmo

Se define la complejidad computacional como la cantidad de recursos que debe utilizar un algoritmo para encontrar la solución al problema que pretende resolver. La complejidad computacional se representa a través de la notación de O grande junto con diferentes funciones matemáticas.

  • O(1). Función constante. Un ejemplo de tipo de algoritmo que represente esta notación es una funciones hash, quien pretende obtener como resultado un elemento.
  • O (log n). Función logarítmica. Un ejemplo de algoritmo que representa esta notación es un árbol de búsqueda balanceado. 
  • O (n). Función lineal. Un ejemplo de algoritmo que representa esta notación es una lista. 
  • O (n log n). Función loglineal. Un ejemplo de algoritmo que representa esta notación es el algoritmo de ordenación rápida merge sort. 
  • O (n^2). Función cuadrática. Un ejemplo de algoritmo que representa esta notación es el algoritmo de ordenación rápida bubble sort.
  • O (c^n), c > 1. Función exponencial. Un algoritmo que representa esta notación es la fuerza bruta. 

algoritmos google posicionamiento seo

Los algoritmos de Google

Google introduce cambios en sus algoritmos de posicionamiento prácticamente a diario. Algunos son pequeños ajustes, mientras que otros sacuden seriamente los SERPs (Search Engine Ranking Position).

Los algoritmos de Google son un sistema complejo que se utiliza con el objetivo de recuperar datos de su índice de búsqueda y ofrecer al instante los mejores resultados posibles para la consulta de un usuario.

El motor de búsqueda de Google utiliza una combinación de algoritmos y numerosas señales de posicionamiento para mostrar páginas web clasificadas por relevancia en sus páginas de resultados del motor de búsqueda. Esto se conoce como SERP, o Search Engine Ranking Pages.

Sigue leyendo sobre los algoritmos de Google y Google BERT

Algoritmos más utilizados en machine learning

A continuación, se presenta un listado de los algoritmos más utilizados dentro del área del machine learning:

  • Árboles de decisión.
  • Algoritmos bayesianos.
  • Algoritmos de regresión.
  • Algoritmos de redes neuronales.
  • Algoritmos de reducción de dimensión.
  • Algoritmos de deep learning.