Qué es un Algoritmo
Un algoritmo es un conjunto detallado y lógico de pasos para alcanzar un objetivo o
resolver un problema.
Por ejemplo, el instructivo para armar un modelo o alguna receta para elaborar una comida.
Los pasos deben ser suficientemente detallados para que el procesador los entienda
En nuestro ejemplo, el procesador es el cerebro de quien arma el modelo; pero el ser humano tiende a obviar muchos aspectos y es factible que haga en forma automática algunos de los pasos del instructivo, sin detenerse a pensar en cómo llevarlos a cabo.
Partes de un algoritmo
Todo algoritmo presenta tres partes distintas: entrada, proceso y salida.
Entrada. La instrucción inicial que da pie al algoritmo y que motiva su lectura. Puede llamarse también inicio, cabecera o punto de partida.
Proceso. Se trata de la elaboración puntual ofrecida por el algoritmo, el cuerpo de sus claves para formular una instrucción. También puede llamarse declaraciones.
Segun sus Funciones
Algoritmos de ordenamiento. Establecen una secuencia de algún tipo para el ingreso de algún tipo de datos.
Algoritmos de búsqueda. Como su nombre lo indica, permite recuperar de una lista específica una serie de elementos determinados.
Algoritmos de encaminamiento. Determinan qué proceso seguirá una instrucción o cómo deberá transmitirse un conjunto de datos. Pueden ser adaptativos (se adaptan al problema) o estáticos (siempre operan igual).
Salida. Por último, están las instrucciones puntuales dictaminadas por el algoritmo, es decir, sus resoluciones o comandos. También puede llamarse cuerpo, pie o fin.
Características de un algoritmo
Precisión
Las instrucciones y los pasos contenidos en un algoritmo deben ser precisos, es decir, no deben dejar margen para ningún tipo de ambigüedad.
Esto se debe a que sus instrucciones deben poder seguirse y comprenderse a cabalidad, o de lo contrario el diagrama de flujo en el que se inscribe no arrojará el resultado correcto.
Definición
Todo algoritmo debe estar perfectamente definido, es decir, se lo debe seguir cuantas veces sea necesario obteniendo cada vez siempre el mismo resultado.
De lo contrario, el algoritmo no será fiable y no servirá como guía en la toma de decisiones.
Según su estrategia. Conforme al método empleado para arrojar sus resultados, podemos estar en presencia de:
Algoritmos probabilísticos. Ofrecen un margen de probabilidad como resultado, de modo que no hay total certeza de su precisión.
Algoritmos heurísticos. Se emplean cuando los métodos tradicionales fallan en arrojar una solución ya que abandonan algún objetivo para alcanzar un resultado posible.
Algoritmos cotidianos. Aquellos usados en la toma cotidiana de decisiones y que pertenecen al ámbito de los más sencillos.
Tipos de algoritmo
Algoritmos cualitativos. Emplean texto y caracteres verbales para impartir sus instrucciones. Por ejemplo, una receta de cocina.
Algoritmos cuantitativos. Emplean cálculos numéricos y operaciones algebraicas. Por ejemplo, una multiplicación.
Algoritmos de escalada. Modifican el proceso a medida que la solución es insatisfactoria (no cumple con la entrada y salida) hasta aproximarse a lo buscado.
Algoritmos deterministas. Operan de manera lineal, de modo que sus resultados pueden ser predichos y pueden aplicarse a procesos controlados.
Finitud
Los algoritmos deben ser finitos: deben terminar en algún momento o arrojar un resultado al final de sus pasos.
Si el algoritmo se prolonga indefinidamente, regresando a algún punto inicial sin poderse resolver jamás, estaremos en presencia de una paradoja o un “loop” de repeticiones.
Legibilidad
La legibilidad de los algoritmos es clave, pues si su contenido es incomprensible no podrán seguirse las instrucciones adecuadas. Esto implica una redacción directa, clara y concisa del texto contenido en cada uno.
Ventajas y desventajas
Ventajas. Permiten el ordenamiento secuencial de los procesos y disminuyen, por lo tanto, el rango posible de errores, ayudando a resolver más rápido y más fácil los problemas planteados. Además, son precisos y permiten ceñirse a una guía específica.
Desventajas. Suelen requerir de conocimiento previo y sobre todo técnico, ya que a menudo los algoritmos se expresan (excepto los más cotidianos y sencillos) en un lenguaje adaptado al caso en cuestión. Por otro lado, la confianza ciega en un método lógico para resolver los problemas puede obviar soluciones creativas más innovadoras pero impredecibles.
En conclusión, cuando se elabora un algoritmo, se tomará en cuenta que la computadora
es como un niño pequeño al cual se le está enseñando a realizar algo por primera vez;
y es necesario concretar lo más posible cada paso que debe da