Algoritmos explicados: qué son y algoritmos de clasificación comunes

En su forma más básica, un algoritmo es un conjunto de instrucciones detalladas paso a paso para completar una tarea. Por ejemplo, un algoritmo para hacer café en una prensa francesa sería:

  1. Vierta agua en el hervidor, cierre la tapa y enciéndalo.
  2. Retire la tapa de la prensa francesa y vierta 17 gramos de café molido.
  3. Cuando el agua del hervidor esté hirviendo, vierta 290 gramos de agua caliente en la prensa francesa.
  4. Vuelva a colocar la tapa de la prensa francesa con el émbolo hacia arriba.
  5. Espere 4 minutos.
  6. Presione suavemente el émbolo hacia abajo hasta que llegue al fondo.
  7. Vierta el café en una taza.

En informática, los algoritmos comunes tienen nombres como "Quicksort" y "Bogosort". Los algoritmos a menudo se agrupan en diferentes categorías como algoritmos de búsqueda, clasificación y compresión. Además, los algoritmos pueden describirse por el enfoque que se necesita para completar una tarea, como recursivo, retroceso, dividir y conquistar, codicioso y fuerza bruta.

Los algoritmos a menudo se combinan con estructuras de datos, aunque son fundamentalmente diferentes. Las estructuras de datos son métodos para almacenar datos para que un algoritmo pueda realizar operaciones en ellos fácilmente.

Algunos ejemplos comunes de estructuras de datos son matrices, pilas, colas, listas enlazadas, árboles, gráficos, tablas hash y montones.

Eficiencia

Los algoritmos a menudo se juzgan y comparan en función de su eficiencia y los recursos que requieren. Una de las formas más comunes de evaluar un algoritmo es observar su complejidad de tiempo a través de un método llamado notación Big O.

La notación Big O es una forma de describir la velocidad o complejidad de un algoritmo y muestra el peor número de operaciones para un tamaño de entrada dado. Es importante comprender el posible tiempo de ejecución de diferentes algoritmos, especialmente cuando se trabaja con conjuntos de datos grandes o en crecimiento. La notación Big O facilita la elección del algoritmo adecuado para cada tarea.

Algoritmos de clasificación

Los algoritmos de clasificación vienen en varios sabores según sus necesidades. Algunas, muy comunes y muy utilizadas son:

Ordenación rápida

Ninguna discusión sobre clasificación está completa sin mencionar la clasificación rápida.

Combinar ordenar

El algoritmo Merge Sort se basa en dividir y clasificar matrices más pequeñas antes de fusionarlas en una matriz ordenada.

El plan de estudios de freeCodeCamp enfatiza mucho la creación de algoritmos. Esto se debe a que el aprendizaje de algoritmos es una buena forma de practicar las habilidades de programación. Los entrevistadores suelen probar a los candidatos en algoritmos durante las entrevistas de trabajo de los desarrolladores.