82

Road to Code: algoritmos clave en programación

59133Puntos

hace 3 años

Estás a punto de culminar tu camino en Road to Code, donde diste tu primer paso iniciando con lo más básico hasta recorrer algoritmos y estructuras de datos que pueden parecer complejos al inicio de abordarlos.

Aviso importante sobre Road to Code

Así como tú, diversos estudiantes se enfrentaron al reto leer y comprender el lenguaje C (más allá de implementarlo) pues es el que se utiliza en el Curso Básico de Algoritmos. Por lo tanto la fecha límite para culminar con el reto de Road to Code será día 16 de noviembre para que así puedas aprovechar una semana más de estudio.

Además de esto puedes tomar el Curso de Introducción a C y Curso de Funciones en C para que en 20 clases breves entiendas mejor el lenguaje junto a sus beneficios de aprenderlo. Recuerda consultar las dudas que tengas con tus compañeros en los grupos de estudio para ayudarnos en comunidad.

La importancia de los algoritmos

Cuando inicias en programación comienzas a escribir código que resuelve un problema específico, conforme conoces más detalles del problema agregar nuevo código que soluciona algo más y si el problema cambia seguramente adaptarás o crearás nuevo código. Para dines didácticos está bien para aprender, pero a largo plazo se convierte en glue code (código pegamento).

https://media.giphy.com/media/Yo8AWPvqdmJB9rXSBk/giphy.gif

Al glue code se le conoce como aquel código funcional que se añade o adapta al código a solo algunas partes del código existente sin añadir valor a los requerimientos actuales, también lo vemos cuando se usar para “unir” distintas convirtiéndose en una mala práctica.

Este es solo uno de muchos problemas que evitamos al implementar algoritmos y entenderlos. Comprender cómo funciona un algoritmo logramos saber: para qué sirve, cuándo implementarlos, los problemas que resuelve y ser conscientes de la cantidad de código que ahorramos.

Diversos lenguajes de programación modernos como Python y JavaScript tienen distintos algoritmos ya integrados en sus métodos, librerías y frameworks. Sin embargo es buena idea saber cómo operan estos algoritmos “por debajo”, ya que puede que utilices uno de estos métodos y cuando obtengas un resultado inesperado en lugar de preguntarte la razón puedas hacer el ajuste necesario.

Algoritmos de uso común

Entre los más comunes y su implementación, encontramos:

  • Bubble sort: compara un elemento con el resto de la lista y lo ubica en su lugar correspondiente si pertenece a este último. Idóneo para ordenar listas de datos pequeñas.
  • Merge sort: divide una lista en 2 partes, estas a su vez en otras 2 y así reiterativamente hasta que cada una sea de 1 o 2 elementos para ordenarlas posteriormente. Práctico para cuando ordenamos datos externos.
  • Quick sort: toma un elemento como “pivote” para colocar a todos los de menor valor antes de este, el resto adelante, divide la lista en 2 partes y repite el proceso. Es utilizado para análisis numérico y búsqueda de información.
  • Búsqueda binaria: identifica el elemento que hay en el medio de una lista, si es este entonces cumple su objetivo. En caso contrario, toma la mitad donde debería estar y repite el proceso. Útil cuando buscas un elemento en una lista ordenada.
  • Recorrido de árboles: si tienes un árbol y necesitas recorrer cada uno de sus nodos, este algoritmo cumple con el cometido iniciando desde la “raíz” para pasar por cada uno de sus “hijos” para que cada “hijo” funcione como “raíz” reiterativamente.

¿Necesito saberlos todos? ¿Por qué hay tantos algoritmos?

Memorizar el código y detalle de cada algoritmo es bastante complejo, pero lo que sí puedes hacer es aprender sus características y funcionamiento. Saber donde puedes consultar esta información te será útil, así que tenla a la mano.

La razón de por qué existen diversos algoritmos es porque cada uno tiene una implementación específica aunque pueda utilizarse en distintos contextos, así que hay unos más especializados o que resultan más eficientes.

Pero mejor mira esta animación donde vemos como se comportan distintos algoritmos de ordenamiento en casos variados, podrás apreciar que hay unos más rápidos.

https://i.imgur.com/fq0A8hx.gif

Resuelve tus dudas sobre algoritmos

En esta semana nos acompañará Juan David Castro, Course Director en Platzi, quien será tu mentor el día hoy 02 de noviembre en nuestra Live Session. Solo debes ingresar a platzi.com/live a las 4:00 pm (MEX)/5:00pm (COL).

¡Nos vemos allá!

https://i.imgur.com/sOaIzBV.png
Héctor Daniel
Héctor Daniel
Terranigma

59133Puntos

hace 3 años

Todas sus entradas
Escribe tu comentario
+ 2
Ordenar por:
5
37338Puntos

Hey una pregunta @terranigma no han pensado en incluir una funcionalidad para retos tipo hackerrank o codewars donde debas pasar los test o algo asi estaria buenisimo!

Sobre todo con lo creo que viene con la escuela de cs

2
3 años

No sería mala idea, pero ten en cuenta que ya hay muchas páginas donde puedes hacer este tipo de test en tiempo real. Aparte de otras plataformas como codeacademy.

1
23445Puntos

Una pregunta…
.
¿En este reto de Road To Code van a dar un certificado de participación como en el reto de Periodismo D. 101?
.
Igualmente muchas gracias por el tiempo extra… en serio lo necesitabamos para entender todos los lenguajes que ha estado usando durante el curso 😃

1

Hola!
Quería preguntar si saben algo del examen del curso básico de algoritmos, pues llegue al final pero me dí cuenta que no había examen.
Gracias!

2
127095Puntos
3 años

Si no te aparece la opción de la siguiente forma, deberías mandar un correo a [email protected] para ver qué puede estar pasando:

AlgorithmExam.png
1
7268Puntos

Excelente información la cual complementa mi aprendiza en Python.

0
18285Puntos

genial

0
28908Puntos

Genial!!!