jueves, 6 de junio de 2024

Una palabra muy de moda: ¿qué es exactamente un "algoritmo" en informática?

Te explicamos qué es un algoritmo informático, para qué sirve y cuáles son sus partes y características.


Un algoritmo es un conjunto de instrucciones para resolver un problema.

¿Qué es un algoritmo?

En informática, se llama algoritmo a una secuencia de instrucciones u operaciones específicas que permiten controlar determinados procesos. Se trata de conjuntos finitos y ordenados de pasos, que nos conducen a resolver un problema o tomar una decisión.

Por ejemplo, una acción simple y cotidiana como encender la luz de la habitación puede describirse como un conjunto ordenado de pasos, como son:

1. ¿La luz está apagada?

NO: FIN

SÍ: ve al paso 2

2. Presiona el interruptor y vuelve al paso 1.

Hoy en día, la presencia de los algoritmos es muy conocida gracias a la automatización digital. Algoritmos sumamente complejos y especializados controlan el funcionamiento de las redes sociales y de los buscadores de internet, entre otras piezas de software, para permitirle al usuario una experiencia personalizada.

Sin embargo, también se utilizan en las matemáticas y en la lógica, entre otras disciplinas, y a menudo se los equipara con los diagramas de flujo.

Etimología: A pesar de esta asociación con la informática, el término “algoritmo” no es precisamente nuevo: proviene del latín algoritmus y, a su vez, del apellido del matemático persa Al-Juarismi. Uno de los algoritmos más antiguos de la matemática se atribuye al filósofo griego Euclides (ca. 325-ca. 265 a. C.), y sirve para obtener el máximo común divisor de dos enteros positivos a través de una serie de pasos secuenciales y bien delimitados.

¿Para qué sirve un algoritmo?

Un algoritmo sirve para tomar una decisión de manera controlada o para resolver paso a paso un problema. Con ese sentido se utilizan los algoritmos en la matemática y la lógica: muchos de los procedimientos tradicionales de cálculo consisten en aplicar un algoritmo.

Además, los algoritmos se utilizan en manuales de instrucciones y otras publicaciones destinadas a orientar al lector en un sentido específico.

En las ciencias de la computación, no obstante, los algoritmos constituyen el esqueleto de los procesos que luego se codificarán y programarán para que sean realizados por el computador. Por esa razón un mismo algoritmo puede ser traducido a distintos lenguajes de programación, dado que se trata de un conjunto de instrucciones de tipo lógico, previas a la programación propiamente dicha.

De hecho, un programa informático puede considerarse como una serie compleja de algoritmos ordenados y codificados mediante un lenguaje de programación, para su posterior ejecución en un sistema informático.

Características de los algoritmos

Los algoritmos tienen las siguientes características generales:

Son secuenciales: operan en secuencia: deben procesarse uno a la vez, comenzando por las primeras instrucciones y avanzando linealmente hacia las últimas.

Son precisos y específicos: las instrucciones que los componen no pueden ser ambiguas o subjetivas, sino directas, fáciles de seguir y lo menos generales posible.

Son ordenados: deben leerse en un orden específico para que tengan sentido. Descolocar un algoritmo o un elemento del algoritmo puede invalidar a los demás.

Son finitos: tienen un inicio y un fin determinados.

Son definidos: un mismo algoritmo debe dar siempre los mismos resultados si es alimentado por los mismos elementos.

Partes de un algoritmo


Todo algoritmo se compone de tres partes: entrada, proceso y salida.

Los algoritmos tienen una estructura fija, que se compone de las siguientes tres partes:

Input o entrada: contiene las instrucciones iniciales, en las que se ingresan los datos que el algoritmo necesita para operar.

Proceso o instrucciones: está compuesto por las operaciones lógicas que el algoritmo emprenderá con lo recibido del input.

Output o salida: son los resultados obtenidos luego del proceso, una vez terminada la ejecución del algoritmo.

Tipos de algoritmos

En la informática se distingue entre los tipos de algoritmos a partir de distintos criterios.

Según los procesos que requieran:

Algoritmos computacionales: son aquellos cuya resolución puede llevarse a cabo mediante una calculadora o computadora.

Algoritmos no computacionales: son aquellos que no dependen del cálculo y no requieren de los procesos de una computadora para resolverse.

Según las secuencias que intervengan:

Algoritmos cualitativos: son aquellos en cuya resolución no intervienen cálculos numéricos, sino secuencias lógicas y/o formales.

Algoritmos cuantitativos: son aquellos que dependen de cálculos matemáticos para dar con su resolución.

Según su propósito:

Algoritmos de búsqueda: son aquellos que permiten ubicar elementos de rasgos específicos dentro de un conjunto de datos.

Algoritmos de ordenamiento: son aquellos que permiten organizar un conjunto de datos de acuerdo a un criterio específico.

Algoritmos predictivos: son aquellos que permiten hacer proyecciones lógicas futuras de un problema, es decir, buscar opciones probables de input.

Algoritmos probabilísticos: son aquellos que permiten obtener un resultado azaroso dentro de un conjunto de datos establecido.

Algoritmos de optimización: son aquellos que buscan hacer más eficiente un proceso determinado,  y para lograrlo, buscan alternativas a los elementos de un conjunto de datos.

Ejemplos de algoritmos

Los siguientes son simples ejemplos posibles de algoritmo:

Algoritmo para elegir unos zapatos de fiesta:

INICIO

1) Buscar la sección de zapatos de caballero en la tienda.

2) Tomar un par de zapatos. ¿Son zapatos de fiesta?

SÍ: ir al paso 3 – NO: volver al paso 2

3) ¿Hay de la talla adecuada?

Sí: ir al paso 4 – NO: volver al paso 2

4) ¿El precio es adecuado?

Sí: ir al paso 5 – NO: volver al paso 2

5) Comprar el par de zapatos.

FIN

Algoritmo para calcular el área de un triángulo rectángulo:

INICIO

  • Hallar las medidas de la base (b) y altura (h)
  • Multiplicar base por altura (b x h)
  • Dividir entre 2 el resultado (b x h) / 2

FIN

(Fuente: https://concepto.de/algoritmo-en-informatica)