CursosEmpresasBlogLiveConfPrecios

Notación Big O

Clase 7 de 11 • Curso de Entrevistas Técnicas: Estructuras de Datos y Algoritmos Avanzados

Clase anteriorSiguiente clase

Contenido del curso

Introducción
  • 1
    ¿Qué son las estructuras de datos y algoritmos?

    ¿Qué son las estructuras de datos y algoritmos?

    02:19
  • 2
    ¿Por qué importan las estructuras de datos y algoritmos?

    ¿Por qué importan las estructuras de datos y algoritmos?

    01:43
  • 3
    ¿Qué estructuras de datos y algoritmos aprender?

    ¿Qué estructuras de datos y algoritmos aprender?

    01:54
Preparación para entrevistas
  • 4
    ¿Cómo es (comúnmente) una entrevista con problemas de programación?

    ¿Cómo es (comúnmente) una entrevista con problemas de programación?

    06:54
  • 5
    5 pasos para resolver problemas de programación durante entrevistas

    5 pasos para resolver problemas de programación durante entrevistas

    12:10
  • 6
    Tips para entrevistas: preparación y ejecución

    Tips para entrevistas: preparación y ejecución

    12:35
  • Quiz: presentación de entrevistas con algoritmos

Mide la eficiencia de tus algoritmos
  • 7
    Notación Big O

    Notación Big O

    05:18
  • 8
    Calculando la complejidad de algoritmos

    Calculando la complejidad de algoritmos

    08:21
  • Quiz: notación big o

Bonus
  • 9
    Recursos útiles para aprender algoritmos

    Recursos útiles para aprender algoritmos

    02:55
  • 10

    Estructuras de Datos y Algoritmos: Conceptos Clave y Aplicaciones

    08:02
Próximos pasos
  • 11
    Toma los Cursos Avanzados de Algoritmos

    Toma los Cursos Avanzados de Algoritmos

    00:39
    Alen Samuel

    Alen Samuel

    student•
    hace 3 años

    Como no veo este curso en los Recursos les dejo este curso que me ayudo a comprender Big O de una manera facil y rapida https://platzi.com/cursos/complejidad-js/

      Camila Londoño

      Camila Londoño

      teacher•
      hace 3 años

      Gracias por compartir

      Rigel David Gutiérrez Carbajal

      Rigel David Gutiérrez Carbajal

      student•
      hace 3 años

      También se encuentra para python :D

    Jackeline Puruaya

    Jackeline Puruaya

    student•
    hace 3 años
    Captura de pantalla 2023-02-23 132427.png
      Andres Silva Vega

      Andres Silva Vega

      student•
      hace 7 meses
    Miguel Negron Garcia

    Miguel Negron Garcia

    student•
    hace 2 años

    Para aquellos que usan Chat GPT para estudiar"

    Para que le explique el tema que no dominan o que quieren que este mas claro pidanle que les explique el tema usando la tecnica Feyman, si quieren que le haga preguntas para ver cuanto comprendieron del tema pues que use la tecnica Socratica.

    Lo uso todo el tiempo y me ha ayudado mucho. Suerte a todos.

      Frandel Corporan Rodríguez

      Frandel Corporan Rodríguez

      student•
      hace 2 años

      Gracias bro!

      Tomás Carrión

      Tomás Carrión

      student•
      hace 6 meses

      Game-changing. Gracias

    Luis Fernando Forero Guzmán

    Luis Fernando Forero Guzmán

    student•
    hace 3 años
    • Constant - O(1) Runtime does not depend on input size Example: Look up the first item [1,2,5]

    • Logarithmic - O(log(n)) Runtime grows slower than the input size Example: Binary Search Search an element in an ordered list Open dictionary in half Check value See if is at the first half or the second half of the dictionary

    • Linear - O(n) The runtime grows at the same rate as the input. Example: Unsorted list

    • Log-Linear - O(n log(n)) An operation of log(n) complexity for each input value Example: Efficient Sorting

    • Quadratic - O(n^2) An operation of complexity O(n) is carried out for each input Example: Check all pairs of input values (Double for loop)

    • Polynomial - O(n^3)... Computations with other exponents (n^4, n^5, etc) Example: Check all triplets of input values (Triple for loop)

    • Exponential - O(2^n)... Complexity is multiplied (doubled, tripled, etc) with each additional input value Example: Recursive Algorithms - Traveling salesman problem

    • Worse- O(n!) Runtimes can be worse than exponential Examples: Permutations

    Walter De Jesús Medina Puy

    Walter De Jesús Medina Puy

    student•
    hace 3 años

    Les comparto un video en inglés, bastante comprensible explicando el tema de complejidad computacional:

    www .youtube. com/watch?v=47GRtdHOKMg

    Julian David Alzate Cuervo

    Julian David Alzate Cuervo

    student•
    hace 3 años

    Le pregunté a chatgpt que me explicara el concepto de Notación Big o para un niño de 10 años y esto me dijo:

    ¡Claro! Voy a intentar explicar la notación Big O de una manera sencilla para un niño de 10 años.

    La notación Big O se usa en programación para describir la eficiencia de un algoritmo. Imagina que tienes que ordenar una lista de números en orden ascendente. Hay diferentes formas de hacer esto, algunas más rápidas que otras. Si usas un algoritmo muy lento, puede que tardes mucho tiempo en ordenar la lista, especialmente si la lista es muy grande.

    La notación Big O se utiliza para medir cuánto tiempo tarda un algoritmo en completarse en función del tamaño de los datos de entrada. En otras palabras, mide la rapidez con la que un algoritmo puede procesar datos a medida que la cantidad de datos aumenta.

    Por ejemplo, si tienes que ordenar una lista de 10 elementos, es posible que un algoritmo tardara unos segundos en completar la tarea. Pero si tienes que ordenar una lista de 1 millón de elementos, el mismo algoritmo podría tardar varios minutos o incluso horas.

    La notación Big O se representa con una letra "O" seguida de una función matemática que describe la eficiencia del algoritmo en función del tamaño de los datos de entrada. Por ejemplo, si un algoritmo tarda un tiempo constante en completarse, se escribiría como O(1). Si el tiempo que tarda el algoritmo aumenta linealmente con el tamaño de los datos de entrada, se escribiría como O(n), donde "n" es el tamaño de los datos de entrada.

    En resumen, la notación Big O es una manera de medir la eficiencia de un algoritmo en función del tamaño de los datos de entrada. Si un algoritmo tiene una notación Big O pequeña, significa que es muy eficiente y puede procesar grandes cantidades de datos rápidamente. Si el algoritmo tiene una notación Big O grande, puede tardar mucho tiempo en procesar grandes cantidades de datos.

      Javier Amador Amador

      Javier Amador Amador

      student•
      hace 2 años

      Genial explicaion, muchas gracias por tu aporte amigo

      Frandel Corporan Rodríguez

      Frandel Corporan Rodríguez

      student•
      hace 2 años

      Con esto lo entendí mucho mejor

    Alfredo Olmedo

    Alfredo Olmedo

    student•
    hace un año

    Notación Big O

    Juan Manuel Nava Zamudio

    Juan Manuel Nava Zamudio

    student•
    hace 3 años

    creo que lo correcto habría sido decir que las complejidades son O(log x), O(x) porque el eje es x, la otra opción es cambiar x por n para ilustrar mejor la relación entre el aumento de valores con su función

      GIANKARLO ROJAS

      GIANKARLO ROJAS

      student•
      hace 2 años

      Puedes revisar este curso https://platzi.com/cursos/complejidad-js/ para aclarar dudas

    Ramses Acosta

    Ramses Acosta

    student•
    hace 3 años

    Complejidad constante “Así aumenten la cantidad de datos que entran, no aumenta ya sea el tiempo, la memoria” esto a mi me resulta muy confuso, porque si tu aumentas el numero de datos para procesar si o si va aumentar el tiempo o los recursos a usar, si tienes que procesar 10 datos no va a ser lo mismo que procesar 1000, se necesitan mas ciclos de reloj del procesador al igual que si asignamos una (1) variable no es lo mismo que asignar 1000.

      Juan Castro

      Juan Castro

      teacher•
      hace 3 años

      Imagina este caso:

      function (array) { return array[0]; }

      No importa si el array tiene 10 elementos o 500 mil, lo único que hace nuestra función es retornar el primero, así que la complejidad no aumenta con el número de elementos del array.

      Por supuesto que crear una variable con 10 o 500 mil elementos es muy distinto. Pero recuerda que al calcular la complejidad de nuestros algoritmos tenemos en cuenta lo que hacemos durante el algoritmo (por decirlo así, dentro de la función, no por fuera).

      Si nuestra función crea una nueva variable por cada elemento del array que recibe como parámetro, entonces la complejidad espacial aumenta también, pero si nuestra función "solo" recibe el array pero no crea nuevas variables que dependan de esa cantidad de elementos, entonces no aumenta esa complejidad.

      Ramses Acosta

      Ramses Acosta

      student•
      hace 3 años

      parcero mil gracias, tu ejemplo es muy claro, lo que estuve pensando es que deberíamos de contar ciclos reloj mira pensé en hacer un convert con algo asi psudo codigo a assembler y ahí si se puede ver de mejor manera como es la complejidad. pero muy buen ejemplo me ayudo a entender mejor el concepto.

    Daniel Buitrago

    Daniel Buitrago

    student•
    hace 2 años

    Esta clase me gustó mucho y me parece una explicación sencilla para entender el concepto pero sin duda se debe profundizar. Les comparto un pequeño post donde hablan un poco más de estas notaciones tan importantes.

    • https://medium.com/nowports-tech/introducci%C3%B3n-a-big-o-notation-95ecca8bd866
    Ivan Camilo Buitrago Buitrago

    Ivan Camilo Buitrago Buitrago

    student•
    hace 3 años

    La notación Big O es una forma de medir la complejidad de un algoritmo. Se utiliza para determinar cuánto tiempo y espacio se tarda un algoritmo en ejecutarse.

    La notación Big O se representa como O(n), donde n es el tamaño del conjunto de datos de entrada. Esto significa que la complejidad del algoritmo aumenta proporcionalmente al tamaño del conjunto de datos.

    Por ejemplo, si tenemos un algoritmo que tarda 1 segundo en procesar un conjunto de datos de tamaño 100, y tarda 2 segundos en procesar un conjunto de datos de tamaño 200, podemos decir que la complejidad del algoritmo es O(n), ya que el tiempo de ejecución se duplica cuando el tamaño del conjunto de datos se duplica.

    La notación Big O se utiliza para analizar la eficiencia de los algoritmos y para comparar diferentes algoritmos entre sí. Es importante encontrar el algoritmo más eficiente para resolver un problema determinado, ya que esto puede marcar una gran diferencia en el rendimiento de una aplicación.

    En resumen, la notación Big O es una herramienta útil para evaluar la complejidad de los algoritmos y encontrar el más eficiente para resolver un problema determinado.

    Pablo Torres Pérez

    Pablo Torres Pérez

    student•
    hace 6 meses

    Les dejo una hoja de trucos (Cheat Sheet) con operaciones comunes en diferentes estructuras de datos y la complejidad de cada una. Big-O Algorithm Complexity Cheat Sheet (Know Thy Complexities!) @ericdrowell

    Francisco Fabian Montaño López

    Francisco Fabian Montaño López

    student•
    hace 4 meses

    La notación Big O es una forma de describir la complejidad algorítmica de un algoritmo en términos de tiempo o espacio en función del tamaño de la entrada. Se utiliza para clasificar algoritmos según su rendimiento en el peor de los casos, permitiendo comparar la eficiencia de diferentes algoritmos. Por ejemplo, O(n) indica que el tiempo de ejecución crece linealmente con el tamaño de la entrada, mientras que O(n^2) sugiere un crecimiento cuadrático. Conocer esta notación es fundamental para optimizar la programación y prepararse para entrevistas técnicas.

    Andres Silva Vega

    Andres Silva Vega

    student•
    hace 7 meses
    Miguel Angel Reyes Moreno

    Miguel Angel Reyes Moreno

    student•
    hace un año

    Les comparto 2 vídeos que explican la Big O Notation: - [Big-O Notation in 100 Seconds](https://www.youtube.com/watch?v=g2o22C3CRfU) - [Time Complexity | Big O Notation | Data Structures & Algorithms | JomaClass](https://www.youtube.com/watch?v=v1SYihb4rcw)

    Ashley Andres Alejo Guilarte

    Ashley Andres Alejo Guilarte

    student•
    hace 2 años

    les dejo este recurso:

    Isaí Sánchez Jiménez

    Isaí Sánchez Jiménez

    student•
    hace 2 años

    Chio Code - Notacion Big O https://www.youtube.com/watch?v=MyAiCtuhiqQ&ab_channel=ChioCode

    Nicolas Alpargatero

    Nicolas Alpargatero

    student•
    hace 2 años

    Me pareció muy buena explicación. Lo que debe ser y sencillo.

Escuelas

  • Desarrollo Web
    • Fundamentos del Desarrollo Web Profesional
    • Diseño y Desarrollo Frontend
    • Desarrollo Frontend con JavaScript
    • Desarrollo Frontend con Vue.js
    • Desarrollo Frontend con Angular
    • Desarrollo Frontend con React.js
    • Desarrollo Backend con Node.js
    • Desarrollo Backend con Python
    • Desarrollo Backend con Java
    • Desarrollo Backend con PHP
    • Desarrollo Backend con Ruby
    • Bases de Datos para Web
    • Seguridad Web & API
    • Testing Automatizado y QA para Web
    • Arquitecturas Web Modernas y Escalabilidad
    • DevOps y Cloud para Desarrolladores Web
  • English Academy
    • Inglés Básico A1
    • Inglés Básico A2
    • Inglés Intermedio B1
    • Inglés Intermedio Alto B2
    • Inglés Avanzado C1
    • Inglés para Propósitos Específicos
    • Inglés de Negocios
  • Marketing Digital
    • Fundamentos de Marketing Digital
    • Marketing de Contenidos y Redacción Persuasiva
    • SEO y Posicionamiento Web
    • Social Media Marketing y Community Management
    • Publicidad Digital y Paid Media
    • Analítica Digital y Optimización (CRO)
    • Estrategia de Marketing y Growth
    • Marketing de Marca y Comunicación Estratégica
    • Marketing para E-commerce
    • Marketing B2B
    • Inteligencia Artificial Aplicada al Marketing
    • Automatización del Marketing
    • Marca Personal y Marketing Freelance
    • Ventas y Experiencia del Cliente
    • Creación de Contenido para Redes Sociales
  • Inteligencia Artificial y Data Science
    • Fundamentos de Data Science y AI
    • Análisis y Visualización de Datos
    • Machine Learning y Deep Learning
    • Data Engineer
    • Inteligencia Artificial para la Productividad
    • Desarrollo de Aplicaciones con IA
    • AI Software Engineer
  • Ciberseguridad
    • Fundamentos de Ciberseguridad
    • Hacking Ético y Pentesting (Red Team)
    • Análisis de Malware e Ingeniería Forense
    • Seguridad Defensiva y Cumplimiento (Blue Team)
    • Ciberseguridad Estratégica
  • Liderazgo y Habilidades Blandas
    • Fundamentos de Habilidades Profesionales
    • Liderazgo y Gestión de Equipos
    • Comunicación Avanzada y Oratoria
    • Negociación y Resolución de Conflictos
    • Inteligencia Emocional y Autogestión
    • Productividad y Herramientas Digitales
    • Gestión de Proyectos y Metodologías Ágiles
    • Desarrollo de Carrera y Marca Personal
    • Diversidad, Inclusión y Entorno Laboral Saludable
    • Filosofía y Estrategia para Líderes
  • Diseño de Producto y UX
    • Fundamentos de Diseño UX/UI
    • Investigación de Usuarios (UX Research)
    • Arquitectura de Información y Usabilidad
    • Diseño de Interfaces y Prototipado (UI Design)
    • Sistemas de Diseño y DesignOps
    • Redacción UX (UX Writing)
    • Creatividad e Innovación en Diseño
    • Diseño Accesible e Inclusivo
    • Diseño Asistido por Inteligencia Artificial
    • Gestión de Producto y Liderazgo en Diseño
    • Diseño de Interacciones Emergentes (VUI/VR)
    • Desarrollo Web para Diseñadores
    • Diseño y Prototipado No-Code
  • Contenido Audiovisual
    • Fundamentos de Producción Audiovisual
    • Producción de Video para Plataformas Digitales
    • Producción de Audio y Podcast
    • Fotografía y Diseño Gráfico para Contenido Digital
    • Motion Graphics y Animación
    • Contenido Interactivo y Realidad Aumentada
    • Estrategia, Marketing y Monetización de Contenidos
  • Desarrollo Móvil
    • Fundamentos de Desarrollo Móvil
    • Desarrollo Nativo Android con Kotlin
    • Desarrollo Nativo iOS con Swift
    • Desarrollo Multiplataforma con React Native
    • Desarrollo Multiplataforma con Flutter
    • Arquitectura y Patrones de Diseño Móvil
    • Integración de APIs y Persistencia Móvil
    • Testing y Despliegue en Móvil
    • Diseño UX/UI para Móviles
  • Diseño Gráfico y Arte Digital
    • Fundamentos del Diseño Gráfico y Digital
    • Diseño de Identidad Visual y Branding
    • Ilustración Digital y Arte Conceptual
    • Diseño Editorial y de Empaques
    • Motion Graphics y Animación 3D
    • Diseño Gráfico Asistido por Inteligencia Artificial
    • Creatividad e Innovación en Diseño
  • Programación
    • Fundamentos de Programación e Ingeniería de Software
    • Herramientas de IA para el trabajo
    • Matemáticas para Programación
    • Programación con Python
    • Programación con JavaScript
    • Programación con TypeScript
    • Programación Orientada a Objetos con Java
    • Desarrollo con C# y .NET
    • Programación con PHP
    • Programación con Go y Rust
    • Programación Móvil con Swift y Kotlin
    • Programación con C y C++
    • Administración Básica de Servidores Linux
  • Negocios
    • Fundamentos de Negocios y Emprendimiento
    • Estrategia y Crecimiento Empresarial
    • Finanzas Personales y Corporativas
    • Inversión en Mercados Financieros
    • Ventas, CRM y Experiencia del Cliente
    • Operaciones, Logística y E-commerce
    • Gestión de Proyectos y Metodologías Ágiles
    • Aspectos Legales y Cumplimiento
    • Habilidades Directivas y Crecimiento Profesional
    • Diversidad e Inclusión en el Entorno Laboral
    • Herramientas Digitales y Automatización para Negocios
  • Blockchain y Web3
    • Fundamentos de Blockchain y Web3
    • Desarrollo de Smart Contracts y dApps
    • Finanzas Descentralizadas (DeFi)
    • NFTs y Economía de Creadores
    • Seguridad Blockchain
    • Ecosistemas Blockchain Alternativos (No-EVM)
    • Producto, Marketing y Legal en Web3
  • Recursos Humanos
    • Fundamentos y Cultura Organizacional en RRHH
    • Atracción y Selección de Talento
    • Cultura y Employee Experience
    • Gestión y Desarrollo de Talento
    • Desarrollo y Evaluación de Liderazgo
    • Diversidad, Equidad e Inclusión
    • AI y Automatización en Recursos Humanos
    • Tecnología y Automatización en RRHH
  • Finanzas e Inversiones
    • Fundamentos de Finanzas Personales y Corporativas
    • Análisis y Valoración Financiera
    • Inversión y Mercados de Capitales
    • Finanzas Descentralizadas (DeFi) y Criptoactivos
    • Finanzas y Estrategia para Startups
    • Inteligencia Artificial Aplicada a Finanzas
    • Domina Excel
    • Financial Analyst
    • Conseguir trabajo en Finanzas e Inversiones
  • Startups
    • Fundamentos y Validación de Ideas
    • Estrategia de Negocio y Product-Market Fit
    • Desarrollo de Producto y Operaciones Lean
    • Finanzas, Legal y Fundraising
    • Marketing, Ventas y Growth para Startups
    • Cultura, Talento y Liderazgo
    • Finanzas y Operaciones en Ecommerce
    • Startups Web3 y Blockchain
    • Startups con Impacto Social
    • Expansión y Ecosistema Startup
  • Cloud Computing y DevOps
    • Fundamentos de Cloud y DevOps
    • Administración de Servidores Linux
    • Contenerización y Orquestación
    • Infraestructura como Código (IaC) y CI/CD
    • Amazon Web Services
    • Microsoft Azure
    • Serverless y Observabilidad
    • Certificaciones Cloud (Preparación)
    • Plataforma Cloud GCP

Platzi y comunidad

  • Platzi Business
  • Live Classes
  • Lanzamientos
  • Executive Program
  • Trabaja con nosotros
  • Podcast

Recursos

  • Manual de Marca

Soporte

  • Preguntas Frecuentes
  • Contáctanos

Legal

  • Términos y Condiciones
  • Privacidad
  • Tyc promociones
Reconocimientos
Reconocimientos
Logo reconocimientoTop 40 Mejores EdTech del mundo · 2024
Logo reconocimientoPrimera Startup Latina admitida en YC · 2014
Logo reconocimientoPrimera Startup EdTech · 2018
Logo reconocimientoCEO Ganador Medalla por la Educación T4 & HP · 2024
Logo reconocimientoCEO Mejor Emprendedor del año · 2024
De LATAM conpara el mundo
YoutubeInstagramLinkedInTikTokFacebookX (Twitter)Threads