Crea una cuenta o inicia sesión

¡Continúa aprendiendo sin ningún costo! Únete y comienza a potenciar tu carrera

Introducción a complejidad algorítmica

4/18
Recursos

La complejidad algorítmica consiste en entender el crecimiento de recursos que requiere un algoritmo al momento de ejecutar un número determinado de elementos.

En otras palabras, el algoritmo puede que se comporte de una manera con 10, 15 o 20 elementos. Sin embargo, con cientos o miles de elementos, el algoritmo probablemente se comportará de manera diferente, con respecto al tiempo y el espacio.

Los recursos para medir la complejidad de un algoritmo son el tiempo y el espacio:

  • El tiempo es representado en milisegundos, segundos, minutos, etc.

  • El espacio es representado en bytes, kilobytes, megabytes, gigabytes, etc.

Teoría de la complejidad

La teoría de la complejidad estudia el consumo de recursos (tiempo / espacio) que un algoritmo ocupa.

La complejidad algorítmica no hace referencia al tiempo de ejecución del algoritmo (segundos, minutos, horas, etc.), sino al ritmo y qué tan eficiente puede ser un algoritmo, con base en el problema que está resolviendo.

A través de la complejidad buscamos entender el crecimiento de recursos, no su tamaño. Es el crecimiento de recursos lo que importa.

Contribución creada por Brandon Argel Verdeja Dominguez, Alejandro Navarro Dimas y Andrés Guano (Platzi Contributor).

Aportes 14

Preguntas 2

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

✨ Empezamos el módulo de Complejidad Algorítmica.


🚗 Ok, ¿Cómo sabemos cuando un coche es más rápido que otro? Bueno, si los ponemos en un tramo igual, y tomamos nuestros relojes para medir cuánto tardan, podremos ver que uno llega más rápido que otro a la meta 🏁. Que un coche tarda menos que otro. Tal vez unos 10, o 20, o 30 minutos.

Entonces, medir es clave para determinar el mejor. Pero la Complejidad en sí no trata de si un coche llega 10, o 20 o 30 minutos más rápido a la meta. Si no del ritmo con el que aumenta. Esto lo veremos en todo el módulo de Complejidad Algorítmica.

La teoría de la complejidad estudia el consumo de recursos (tiempo, espacio) que un algoritmo ocupa. la complejidad algorítmica no se fija en el tiempo de ejecución del algoritmo (segundos, minutos, horas, etc), se fija en el ritmo y que tan eficiente puede ser un algoritmo en base al problema que está resolviendo. 🤓

La teoria de complejida estudia el consumo de recursos que un algoritmo ocupa

🚦 Introducción a Complejidad algorítmica

Ideas/conceptos claves

**Complejidad** es la cualidad de lo que está compuesto de diversos elementos interrelacionados. Por un lado, en términos coloquiales, la palabra complejidad tiende a ser utilizada para caracterizar un conjunto intrincado y difícil de comprender.

Apuntes

  • Debido a que podemos elegir entre tiempo y espacio en diferentes algoritmos, pero podemos medir los recursos
  • Para obtener cuántos recursos utiliza un algoritmo, solo medimos los recursos

Teoría de la complejidad

  • Es el estudio de recursos que un algoritmo ocupa
  • Queremos entender el crecimiento de recursos, no su tamaño
  • El crecimiento de recursos importa
📌 **RESUMEN:** Podemos analizar la complejidad de un algoritmo, midiendo los recursos ya sea en tiempo o memoria, de eso se encarga la teoría de la complejidad la cual estudia los recursos que ocupa un algoritmo y el crecimiento de recursos es un factor importante

Complejidad algorítmica

Los recursos que tenemos para medir la complejidad de un algoritmo son el tiempo y el espacio:

El tiempo es representado en milisegundos, segundos, minutos, etc.

El espacio es representado en bytes, kilobytes, megabytes, gigabytes, etc.

Teoría de la complejidad

La teoría de la complejidad estudia el consumo de recursos (tiempo, espacio) que un algoritmo ocupa. La complejidad algorítmica no se fija en el tiempo de ejecución del algoritmo se fija en el ritmo que lleva a la hora de ingresar 1, 2, 3 … n datos de entrada y que tan eficiente puede ser un algoritmo en base al problema que está resolviendo.

El la complejidad queremos entender el crecimiento de recursos, no su tamaño. El crecimiento de recursos importa.

Recursos

  • Espacio
  • Tiempo

Medir los recursos es: considerar el tiempo y el espacio para generar ciertos cálculos
Teoría de la complejidad: Estudia el consumo de recursos que un algoritmo ocupa
La complejidad se basa en el crecimiento de cada uno de los recursos de un algoritmo

El crecimiento de los recursos importa

recomiendo ver este curso a 1.25x

Básicamente la complejidad mide el consumo de recursos de un algoritmo, para entenderlo más fácil lo podemos ver de la siguiente manera:
Tenemos un vehículo con el cual debemos recorrer 5km, y vemos que para 5km con una conducción rápida consume 1L de gasolina, pero para una conducción más tranquila consume la mitad. Ahora necesitamos recorrer 20km y tenemos 2L de gasolina, sabemos que con una conducción veloz no vamos a llegar, necesitaríamos 4L pero con una conducción tranquila podemos llegar sin problema.

Situaciones de este estilo, pero con código, son las que vamos a tener que analizar a la hora de ver la complejidad de nuestro algoritmo y si nos inclinamos por favorecer el tiempo o el uso de memoria.

Hace un año escribí post acerca de qué es la complejidad algoritmica y por qué debes aprenderlo. Pueden ir a este post para leerlo
.
Incluso les comparto la complejidad algoritmica a nivel matematico y la info de wikipedia para que puedan profundizar más en el tema

No había pensado en relacionar la complejidad con el crecimiento, tiene razon el profe

El estudio de la complejidad de algoritmo no se basa en un solo punto, como el tiempo o el espacio, sino en la figura completa

Con todo lo que aprendí en la uni y en este curso, hice una entrada para compartir mis aprendizaje acerca de la complejidad algoritmica con respecto al espacio y tiempo

Pueden ir a verlo en esta entrada: Complejidad Temporal y Espacial

Consumo eficiente de recursos para obtener un beneficio óptimo

  • La complejidad algorítmica consiste en entender el crecimiento de recursos que requiere un algoritmo al momento de ejecutar un número determinado de elementos.

  • Tiempo:
    Representados en milisegundos, segundos, minutos, etc

  • Espacio:
    Representado en bytes, kilobytes, megabytes, etc