¿Qué es un algoritmo informático?


Libro mostrando diferentes algoritmos (soluciones) para el cubo rubik

Un algoritmo informático, es una serie de pasos que podemos usar para resolver un problema determinado. Un programa de computadora puede ser visto como un algoritmo muy elaborado.

Para que una computadora haga algo, necesitamos escribir un programa. Para escribir un programa, necesitamos indicarle a la computadora, paso a paso, que hacer. Entonces la computadora ejecuta el programa, siguiendo cada uno de los pasos indicados en el programa, para finalmente, lograr el objetivo final.

Cuando le indicamos a la computadora que hacer, también le indicamos como hacerlo. Eso es un algoritmo informático. El algoritmo informático es, como logramos tener el trabajo completado.

Los algoritmos pueden darnos soluciones para cualquier cosa. No necesariamente tiene que ser algoritmos informáticos. Veamos un par de ejemplos para aclarar lo que es un algoritmo.

Supongamos que vamos a visitar un amigo, tenemos que tomar un vuelo, al llegar a nuestro destino tenemos varias opciones para llegar a casa de nuestro amigo.

El algoritmo del taxi

  1. Vaya a la parada de taxis
  2. Suba a un táxi
  3. Dele al taxista la dirección a la que quiere ir

El algoritmo de llámame

  1. Cuando el avión aterrice, llámame
  2. Encontrémonos en el área de reclamo del equipaje
  3. Vámonos a casa

El algoritmo de alquila un carro

  1. Tome el transporte hacia el rent a car
  2. Escoja el rent a car de su preferencia
  3. Alquile un carro
  4. Ingrese la dirección de mi casa en el GPS

El algoritmo del bus

  1. Cuando salga de la terminal, tome el bus 35
  2. Llegue hasta la estación Floral y baje ahí
  3. Tome el bus que va hacia los suburbios
  4. Baje en la parada #12
  5. Camine 3 cuadras al norte y una al este
  6. Busca la puerta #234

Estos cuatro algoritmos nos permiten alcanzar exactamente la misma meta: llegar a casa de nuestro amigo. Pero casa uno de ellos, lo hace en forma completamente diferentes. Cada uno tendrá sus pros y sus contras, así como diferentes costos y riesgos.

Por ejemplo, tomar un taxi posiblemente sea la forma más fácil de llegar, así como la más segura. Pero también, es posible que sea la más cara. Tomar el auto bus, puede que sea la solución más económica, pero será la más lenta y la de mayor riesgo.

Supongamos que mi esposa me envía de compras al supermercado. El algoritmo para lograr la tarea, podría verse algo así:

El algoritmo para llegar al supermercado

  1. Tome las llaves de carro
  2. Tome la billetera
  3. Apague la alarma del carro
  4. Suba al carro
  5. Encienda el carro
  6. Maneje hasta el supermercado
  7. Busque un espacio para estacionar
  8. Apague el carro

El algoritmo para hacer las compras

  1. Tome un carrito de compras
  2. Entre al supermercado
  3. Revise la lista de productos
  4. Busque los productos
  5. Ponga los productos en el carrito
  6. Si no encuentra un producto específico, llame a su esposa para confirmar un producto alternativo
  7. Cuando todos los productos estén en el carrito o este seguro de que no hay de los productos que no a tachado de la lista, vaya a la caja a pagar

El algoritmo para pagar

  1. Busque la caja con la fila más corta
  2. Haga la fila
  3. Saque los productos del carrito y póngalos en la banda transportadora
  4. Cuando ya no tenga productos en el carrito, avance hasta el cajero
  5. Espere hasta la indicación para pasar la tarjeta de crédito
  6. Pase su tarjeta de crédito
  7. Ponga los productos en el carrito
  8. Asegúrese de no dejar nada en la caja
  9. Vaya a su carro

El conjunto de todos estos algoritmos, me permite cumplir con el objetivo de ir de compras al supermercado. Podemos crear diferentes algoritmos para reemplazar cada uno de ellos, podemos tratar de cambiar pasos para hacer la tarea más optima. Pero al final, siempre vamos a querer cumplir con la tarea.

Importancia de conocer y saber como aplicar un algoritmo informático

El programación, siempre habrán muchas formas diferentes para lograr completar las tareas (algoritmos). Cada algoritmo tiene sus ventajas y desventajas. El ordenamiento, es un area en el que se ha hecho gran investigación y que nos da diversos algoritmos:

  • Bin Sort / Ordenamiento por casilleros
  • Merge Sort / Ordenamiento por mezcla
  • Bubble Sort / Ordenamiento de la burbuja
  • Quicksort / Ordenamiento rápido

Cada uno de ellos tiene un propósito específico y dependiendo de las circunstancias, el que sea más eficiente ante un problema específico, puede que no lo sea ante otro. Conocer las fortalezas y debilidades de un algoritmo es crucial, para poder escoger la mejor solución para nuestro problema.