Complejidad AlgorítmicaOnline version La complejidad de un algoritmo es una medida de cuán eficiente es el algoritmo para resolver el problema, utilizado en estructura de datos para seleccionar la mejor solución by Maria Lourdes Armenta Lindoro 1 ¿Qué es BiG O? Selecciona una o varias respuestas a Métrica para medir la eficiencia de un algoritmo? b Es un algoritmo c Es un campo de la algoritmia d Es el orden de tamaño de entrada 2 ¿Por qué es importante medir la eficiencia del algoritmo? Selecciona una o varias respuestas a Por la escalabilidad en los microservicios b Para ser mejor programador c Lo que importa es que funcione no que tanto tarde d Es el orden de tamaño de entrada 3 ¿Qué tan eficiente es el algoritmo respecto a que se demore mas o menos, tiene que ver con? Selecciona una o varias respuestas a Complejidad de tiempo b Complejidad de espacio c Complejidad computacional d Es el orden de tamaño de entrada 4 ¿Qué es la complejidad constante? Selecciona una o varias respuestas a O(1): Cuando las instrucciones se ejecutan una vez b Son programas que contienen ciclos que se ejecutan n veces. c Son programas que contienen 2 ciclos anidadados d Es el orden de tamaño de entrada 5 ¿Qué es la complejidad lineal? Selecciona una o varias respuestas a En cuanto mas grande sea el archivo (n) mas tiempo tarda b Son programas con funciones que crecen exponencialmente c Es la suma peores complejidades que existen, ya que la cantidad de operaciones crece demasiado rápido d Es el orden de tamaño de entrada 6 La notación O(n^2), ¿qué representa? Selecciona una o varias respuestas a La complejidad cuadrática b La complejidad lineal c La complejidad constante d Es el orden de tamaño de entrada 7 Uno de los mejores algoritmos porque tienen un comportamiento mas estable, ¿son? Selecciona una o varias respuestas a los que tienen complejidad logarítmica b los que tienen complejidad constante c los que tienen complejidad lineal d Es el orden de tamaño de entrada 8 Los algoritmo que contiene for anidados tienden a ser ineficientes Selecciona una o varias respuestas a si b no c los que tienen complejidad lineal d Es el orden de tamaño de entrada 9 ¿cuál es la complejidad del algoritmo de búsqueda binaria? Selecciona una o varias respuestas a O(N) b O(logN) c O(N^2) d O(1) 10 Es la complejidad de un algoritmo recursivo Selecciona una o varias respuestas a O(N) b O(2^N) c O(Log2N) d O(1) Explicación 1 Big O, lo cual es una forma matemática básica de expresar cuanto tarda un algoritmo en ejecutarse atendiendo sólo a grandes rasgos su eficiencia y así poder compararlo con otros. 2 Actualmente muchas aplicaciones se alojan en la nube, a esto se le llama microservicio y si el algoritmo tarde mas, consume mas recurso y entonces el costo aumenta. 3 la complejidad de tiempo es la complejidad computacional que describe la cantidad de tiempo que lleva ejecutar un algoritmo 4 La complejidad constante en notacion O se refiere a la ejecución de una instrucción. Por ejemplo, sumas, restas, multiplicaciones, etc. Ejemplos: int x = 5; x = 5 + 8; x = 5 * 1000; 5 Son programas que contienen ciclos que se ejecutan n veces. Ejemplos: for(int i = 0; i < n; i++) { x = 5 + 8; } 6 Complejidad cuadratica O(n^2) Son programas que contienen 2 ciclos anidadados. Dado que las operaciones dentro del ciclo interno se ejecutan n * n veces, la complejidad se denomina cuadrática. Nota: Si el ciclo externo se ejecutara hasta n y el interno hasta m, entonces la complejidad sería O(nm). for(int i = 0; i < n; i++) { for(int j = 0; j < n; j++) { x = 5 + 8; } } 7 Complejidad logaritmica O(log2n) Son algoritmos que reducen la cantidad de operaciones a la mitad en cada iteración. Los clásicos y conocidos como divide y vencerás. Esta es una de las mejores complejidades que existen. 8 Los algoritmos con for anidados tienden a tener un comportamiento cuadráticos, por lo que se debe de prestar atención a ellos. 9 Complejidad logaritmica O(log2n) Son algoritmos que reducen la cantidad de operaciones a la mitad en cada iteración. Los clásicos y conocidos como divide y vencerás. Esta es una de las mejores complejidades que existen. 10 Complejidad logaritmica O(log2n) Son algoritmos que reducen la cantidad de operaciones a la mitad en cada iteración. Los clásicos y conocidos como divide y vencerás. Esta es una de las mejores complejidades que existen.