Un algoritmo es un conjunto de instrucciones bien definidas, ordenadas y finitas que sirven para realizar un cálculo o resolver un problema. Su gran capacidad para aportar soluciones, automatizar tareas o tomar decisiones lo ha convertido en una pieza clave diversos ámbitos, aplicándose en matemáticas, ciencias de la computación, medicina, y también en SEO.
Elementos de un algoritmo
Los algoritmos se componen de tres elementos:
- Entrada (input): Es el conjunto de datos necesarios para que el algoritmo realice su función y ofrezca una solución. Estos datos pueden ser números, texto, imágenes, estructura de datos o cualquier otra información necesaria para dar con la solución. En cuanto al número de entradas de un algoritmo, estas pueden ser ilimitadas, dependiendo de la complejidad del mismo. También puede darse el caso que no hayan entradas, es decir, el algoritmo estaría diseñado para hacer una tarea sin requerir ningún dato, por ejemplo cuando este realiza tareas internas.
- Proceso: Son las pautas o secuencias de pasos necesarios que han de darse para la consecución de un objetivo o resolución de un problema.
- Salida (output): Es el resultado obtenido tras procesar el algoritmo. Un algoritmo puede generar al menos una salida. Esta puede variar en función de las diferentes condiciones que se expongan en los datos de entrada.
Características de los algoritmos
Los algoritmos tienen una serie de características comunes que lo definen:
- Finito: Los algoritmos cuentan con un número determinado de instrucciones encaminadas a resolver el problema
- Preciso: Debe indicar de forma inequívoca y sin ambigüedades, el orden o secuencia de los pasos
- Efectivo: Los algoritmos deben dar una solución en tiempo y forma al problema planteado.
- Determinismo: El resultado del algoritmo debe ser el mismo para la misma entrada
Tipos de algoritmos
En función de la tarea a realizar, existen diversos tipos de algoritmos, entre los que destacan los siguientes:
Algoritmo de búsqueda
Los algoritmos de búsqueda se utilizan para buscar o encontrar una serie de elementos determinados dentro de una estructura de datos. Existen diversos tipos de algoritmo de búsqueda, creados para resolver problemas específicos.
Entre ellos destacamos los siguientes:
- Algoritmo de búsqueda lineal: Es el algoritmo más simple, su función es la localizar un elemento dentro de una lista. Para ello analiza todos los elementos de la misma hasta dar con él. Aunque este algoritmo puede ser algo lento en listas grandes, resulta efectivo, sobre todo cuando los elementos de la lista carecen de orden.
- Búsqueda binaria: Este algoritmo funciona en listas de elementos ordenados y reduce el espacio de búsqueda a la mitad en cada interacción.
- Búsqueda de salto: Es similar al algoritmo anterior, si bien el algoritmo de salto divide el espacio de búsqueda en bloques, realizando la búsqueda por sección.
- Búsqueda local: En este caso los algoritmos se centran en encontrar soluciones en una parte limitada, es decir, parten de una solución inicial y exploran vecindades en busca de una solución mejor.
Algoritmo de cifrado
El objetivo de este algoritmo es la de transformar los datos en un formato ilegible y seguro, utilizando para ello técnicas criptográficas.
Algoritmo de retroceso
Es un procedimiento de prueba y error. El algoritmo busca un camino hacia la solución que incluye algunos puntos de control intermedios. Si estos puntos intermedios no derivan en solución viable, el problema retrocede a los puntos de control y tomar otra vía para solucionar el problema.
Algoritmo de divide y vencerás
Este algoritmo divide un problema complejo en subproblemas, los resuelve de forma independiente y posteriormente combina las diversas soluciones para generar una solución. Consta de 3 pasos: Dividir, resolver y combinar.
Algoritmo de programación dinámica
En este caso, el algoritmo resuelve problemas dividiéndolos en subproblemas. Luego, los resultados se almacenan para no tener que calcularlos de nuevo y aplicarlos en futuros problemas.
Algoritmo de fuerza bruta
Este algoritmo prueba de forma sistemática si todos los candidatos posibles pueden o no resolver un problema.
Algoritmo de clasificación
Los algoritmos de clasificación son un tipo de algoritmo de aprendizaje automático orientado a la clasificación de datos en diferentes categorías.
Algoritmo de hash
Los algoritmos hash se comportan de forma similar al algoritmo de búsqueda. Si bien contienen un índice con una identificación clave. En el hashing, se asigna una clave a datos específicos.
Formas de representar un algoritmo
Un algoritmo se puede representar de varias formas, entre ellas destacamos las siguientes:
Diagramas de flujo
El diagrama de flujo es la representación gráfica de un algoritmo. En él se muestran de forma esquemática los diferentes paso a seguir la lograr la solución del problema.
Estos diagramas utilizan una simbología determinada para representar el flujo de las acciones definidas en un algoritmo.
A la hora de elaborar un diagrama de flujo se recomienda:
- Trazar las flujos de arriba a bajo y de izquierda a derecha
- Los símbolos deben tener únicamente un flujo de entrada
- Las líneas de flujo (horizontales y/o verticales) deben ser rectas
- Evitar el cruce de líneas
- Salvo el símbolo de «decisión» y los «contenedores», todos deben tener una salida
- Evitar que hayan líneas de flujo sin conectar
- El texto usado para los símbolos debe ser breve y claro
Pseudocódigo
El pseudocódigo es una representación que combina el lenguaje natural y el lenguaje de programación para describir un algoritmo. En este caso, cada programador escribe su propio pseudocódigo, no habiendo una sintaxis estándar.
Un ejemplo de pseudocódigo sería el siguiente:
Inicio // Declarar una lista de números lista_numeros = [5, 12, 8, 23, 17, 4, 10] // Inicializar la variable que almacenará el número más grande maximo = lista_numeros[0] // Iterar a través de la lista de números Para cada número en lista_numeros hacer Si número > maximo Entonces // Actualizar el número más grande maximo = número Fin Si Fin Para // Imprimir el número más grande Imprimir "El número más grande es: " + maximo Fin
Este pseudocódigo describe el proceso de encontrar el número más grande de una lista. Para ello, comienza declarando una lista de números, inicializando la variable «maximo» con el primer número de la lista y posteriormente recorriendo cada número. Si se encuentra un número mayor que el valor actual de «maximo» se actualiza «maximo» con dicho número. Al final se imprime el número más grande que se encuentra en la lista.
Ejemplos de algoritmos
Algoritmo para sumar dos números
Entrada: Dos números, A y B. Salida: La suma de A y B. Paso 1: Ingresar el valor de A. Paso 2: Ingresar el valor de B. Paso 3: Sumar A y B. Paso 4: Guardar el resultado de la suma en una variable llamada "suma". Paso 5: Mostrar el valor de "suma" como resultado.
Dicho algoritmo lo que hace es tomar dos números como entrada, los suma y posteriormente muestra el resultado.
Algoritmo de búsqueda lineal
Entrada: Una lista de números y un valor a buscar (denominado "valor_buscado"). Salida:La posición en la lista donde se encuentra "valor_buscado", o un indicador de que el valor no se encuentra en la lista. Paso 1: Iniciar un contador (llamado "posición") en 0. Este contador seguirá la posición actual en la lista. Paso 2: Iniciar un bucle que recorrerá la lista elemento por elemento, comenzando desde la posición 0. Paso 3: Para cada elemento en la lista: - Si el elemento actual es igual a "valor_buscado", retornar la "posición" actual. - Si no, incrementar la "posición" en 1 para pasar al siguiente elemento. Paso 4: Si el bucle termina sin encontrar "valor_buscado", retornar un indicador de que el valor no se encuentra en la lista.
Este algoritmo recorre la lista uno por uno y compara cada elemento con el valor que se está buscando. Si encuentra el valor, devuelve la posición encontrada. Si llega al final de la lista sin encontrar el valor, devuelve un indicador para informar que el valor no está en la lista.
Por ejemplo, si tienes la lista [3, 6, 9, 12, 15] y quieres buscar el valor 9, el algoritmo de búsqueda lineal recorrerá la lista y, en el tercer paso, encontraría el valor 9 en la posición 2 (ya que la lista se indexa desde 0). Por lo tanto, la salida sería «El valor 9 se encuentra en la posición 2».
Cálculo del interés simple
Paso 1: Empezar
Paso 2: Lea el principio (P), el tiempo (T) y la velocidad (R)
Paso 3: Calcular I = P*T*R/100
Paso 4: Imprima I como interés
Paso 5: Detener
Referencias
https://informatica.uv.es/docencia/fguia/TI/Libro/PDFs/CAPI5.pdf
https://departamento.us.es/edan/php/asig/LICFIS/LFIPC/Tema5FISPC0809.pdf