¿Cómo elegir un buen algoritmo?

3/18
Recursos

Aportes 6

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesión.

La pregunta base de este curso es: ¿Cómo elegir un buen algoritmo?

🔍 Para encontrar un buen algoritmo podemos ver qué tanto tarda en ejecutarse, o qué tanto espacio en la memoria ocupa.


⌚ En particular en JavaScript es más relevante apuntar al tiempo, que al espacio. Porque en el código JavaScript usualmente no corre en dispositivos con memoria muy limitada (como en dispositivos embebidos).

⚡ Esto no significa que no haya casos particulares, o que el espacio siempre sea menos importante que el tiempo, sólo es el ambiente del software con JavaScript.

Hablemos de complejidad de tiempo y espacio

  • La complejidad de tiempo se enfoca en el tiempo en que un algoritmo tarda en ejecutarse
  • La complejidad espacial se enfoca en cuánto espacio puede ocupar un algoritmo en memoria

Como elegir un buen algoritmo, para esta pregunta antes debemos analizar 2 enfoques:

  • Tiempo: Lo que demora el algoritmo mientras se está ejecutando
  • Espacio: Lo que ocupa dicho algoritmo en en memoria, séase en bytes, kilobytes, megabytes

El tiempo y el espacio va a depender del lenguaje, plataforma o dispositivo donde se vaya a ejecutar el algoritmo, muchas veces un algoritmo es rápido pero ocupa mas espacio, y otras veces un algoritmo puede ser lento pero el espacio que ocupa en memoria es menor.

🥷 Estructura de un algoritmo y como elegir

¿Qué es un algoritmo?

  • Es una secuencia de instrucciones
  • Los algoritmos que se analizarán tienen que contar al menos con datos de entrada (input) y un proceso

Un problema, muchas soluciones

  • Existen muchos algoritmos que resuelven un mismo problema
  • ¿Qué evaluamos de un algoritmo?
    • Tiempo ⇒ ¿Cuánto tarda el algoritmo en resolver su tarea?
      • Representados en milisegundos, segundos, minutos, etc.
    • Espacio ⇒ ¿Cuánto espacio en memoria ocupa el algoritmo?
      • Representados en bytes, kilobytes, megabytes, etc.
  • ¿Existe un mejor aspecto a analizar? ⇒ En el caso de JS es más importante el tiempo debido a que el espacio en dispositivos embebidos, el buen manejo de la memoria es crítico
📌 **RESUMEN:** Un algoritmo es una secuencia de instrucciones las cuales realizan un proceso, debido a que existen diferentes formas de resolver un problema, tenemos varias opciones para elegir un algoritmo, ya sea por tiempo o por espacio, en el caso de JS es más importante el tiempo debido a que el espacio ya esta apartado por las aplicaciones web

¿Cómo elegir un buen algoritmo?

Para un problema existen muchas soluciones, para un problema en particular existen muchos algoritmos que lo resuelven.

¿Qué evaluamos de un algoritmo? El tiempo y el espacio.

Tiempo de algoritmo: El tiempo que tarda el algoritmo en ejecutarse.

Espacio de algoritmo: El espacio que el algoritmo ocupa en memoria.

Dependiendo de lo que estemos creando y cuáles serán los usuarios finales, será lo que tomemos más en cuenta:

En dispositivos embebidos el buen manejo del espacio es crucial.

Si no tenemos problemas de poco espacio disponible, como en JavaScript por ejemplo, ya que las aplicaciones se ejecutarán en computadoras o dispositivos móviles ya han ocupado espacio, es por ello que el tiempo es un factor más importante en JavaScript.

En la actualidad existen 25 tipos de algoritmos, clasificados en grupos de 5 y son searching, Sorting, Graphs, Arrays y basics.