Cupi2 Curso: Estructuras de Datos Nivel: 13 Nombre: Hoja de trabajo N13-C2 Fecha: Prerrequisitos: Lectura de la sección 0.3 “Diseño y Manejo de Estructuras de Datos en C” McGraw¬Hill, 1996, Autor: J. Villalobos Objetivo: Crear habilidades básicas en el cálculo de la complejidad de un algoritmo. 1. ¿Por qué es importante el análisis de algoritmos? ¿Para qué lo utilizaría usted? 2. ¿Qué factores tiene usted en cuenta al medir la eficiencia de un algoritmo? 3. ¿A qué corresponde la función Ta(N)? ¿Qué es N? 4. ¿Por qué Ta(N) se calcula para el peor de los casos? 5. ¿Qué quiere decir que un algoritmo tenga complejidad O( f( N ) )? Universidad de los Andes (Bogotá - Colombia) Departamento de Ingeniería de Sistemas y Computación Licenciado bajo el esquema Academic Free License version 2.1 Proyecto Cupi2 (http://cupi2.uniandes.edu.co) 6. ¿Qué complejidad tiene el siguiente fragmento de código? Explique la razón de su respuesta. var1 = 1; var2 = var1 + 174; var3 = var2 – var1; var4 = 2 * var3; 7. ¿Qué complejidad tiene el siguiente fragmento de código? Explique la razón de su respuesta. var1 = 1; var2 = var1 + 174; for( int i = 0; i < var2; i++ ) var1++; 8. ¿Qué complejidad tiene el siguiente método? Explique la razón de su respuesta. public int metodo1( int valor ) { var1 = 0; for( int i = 0; i < valor; i++ ) var1*=2; return var1; } Universidad de los Andes (Bogotá - Colombia) Departamento de Ingeniería de Sistemas y Computación Licenciado bajo el esquema Academic Free License version 2.1 Proyecto Cupi2 (http://cupi2.uniandes.edu.co) 9. ¿Qué complejidad tiene el siguiente método? Explique la razón de su respuesta. public void metodo2( int valor1, int valor2 ) { var1 = 0; for( int i = 0; i < valor1; i++ ) for( int j = 0; j < valor2; j++ ) var1 += i + j; } 10. ¿Qué complejidad tiene el siguiente método? Explique la razón de su respuesta. public void metodo3( int m, int n ) { var1 = 0; if( metodo1( m ) > 100 ) for( int i = 0; i < m; i++ ) var1 += 5; else for( int i = 0; i < n; i++ ) var1 += 10; } 11. ¿Qué complejidad tiene el algoritmo de búsqueda binaria sobre un arreglo? Universidad de los Andes (Bogotá - Colombia) Departamento de Ingeniería de Sistemas y Computación Licenciado bajo el esquema Academic Free License version 2.1 Proyecto Cupi2 (http://cupi2.uniandes.edu.co) 12. ¿Qué complejidad tiene el siguiente algoritmo? public int factorial( int num ) { if( num == 0) return 1; else return num * factorial( num – 1 ) } 13. Suponga que tenemos un ArrayList con los nombres de los estudiantes del curso. ¿Qué complejidad en espacio tiene esa representación? Explique la razón de su respuesta. 14. ¿Qué es un problema indecidible? Universidad de los Andes (Bogotá - Colombia) Departamento de Ingeniería de Sistemas y Computación Licenciado bajo el esquema Academic Free License version 2.1 Proyecto Cupi2 (http://cupi2.uniandes.edu.co)