Complejidad constante “Así aumenten la cantidad de datos que entran, no aumenta ya sea el tiempo, la memoria” esto a mi me resulta muy co...

Pregunta de la clase:
Notación Big O
Ramses Acosta

Ramses Acosta

Pregunta
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.

2 respuestas
    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.

Curso de Entrevistas Técnicas: Estructuras de Datos y Algoritmos Avanzados

Curso de Entrevistas Técnicas: Estructuras de Datos y Algoritmos Avanzados

Aprende a resolver problemas de programación avanzados utilizando estructuras de datos y algoritmos. Mejora tus habilidades para entrevistas técnicas y entiende cómo aplicar complejidad algorítmica en situaciones reales.

Curso de Entrevistas Técnicas: Estructuras de Datos y Algoritmos Avanzados
Curso de Entrevistas Técnicas: Estructuras de Datos y Algoritmos Avanzados

Curso de Entrevistas Técnicas: Estructuras de Datos y Algoritmos Avanzados

Aprende a resolver problemas de programación avanzados utilizando estructuras de datos y algoritmos. Mejora tus habilidades para entrevistas técnicas y entiende cómo aplicar complejidad algorítmica en situaciones reales.