Cuestionario Primer Parcial Complejidad de Algoritmos 1. De donde proviene la palabra algoritmo y quien es su creador. Proviene del termino al_know â n Z m î y su creador fue Mohamend Ben Musa 2. ¿Qué es un Algoritmo? Es el conjunto ordenado y finito de operaciones que permiten encontrar la solución de un problema. 3. ¿Qué es Complejidad Estándar? Es cuando se puede comprender mas fácil y que tengan las mismas características 4. Como se construye un algoritmo? Siguiendo una secuencia de pasos. 5. ¿Qué es Programacion Estructurada? Es una forma de escribir programas de ordenador (programación de computadora) de forma clara 6. Mencione como esta formada la programación estructurada. Secuencia, Selección e Iteración. 7. Como se expresan los algoritmos. Diagramas de flujos y Pseudocódigo. 8. Como se valida un algoritmo. Que no tenga errores. 9. ¿Qué es lo que mas validad un algoritmo? Lo que mas valida un algoritmo es de resolver todos los problemas del programa. 10. Como se compara un algoritmo con otro. Se compara x medio de la medición de sus características. 11. Mencione las características de un algoritmo. Cantidad de líneas de código o tiempo de ejecución o respuesta, Espacio de memoria o tiempo de respuesta, Diseño (instrucciones) 12. De que depende el tiempo de ejecución. Líneas de código, Datos de entrada, Diseño. 13. Se puede ejecutar todas las instrucciones de un algoritmo. No necesariamente porque se puede ejecutar un solo proceso sin ejecutarse todo el programa. 14. ¿Que es Recursividad? Técnica con la que un problema se resuelve sustituyendo por otro problema de la misma forma pero mas simple. 15. Para medir la complejidad de un algoritmo se necesita de. Notación Científica 16. ¿Qué es la Notación Asintótica? Es la propuesta de la notación aceptada por la comunidad científica para descubrir el comportamiento de eficiencia (complejidad) de un algoritmo.
17. ¿Qué es Complejidad? Es medir el grado de complejidad de las instrucciones básicas. 18. ¿Qué es complejidad tiempo espacial? Tiempo espacio requerido por un algoritmo expresado en base a una expresión, depende del tamaño del problema. 19. ¿Qué es complejidad Asintótica? Es el comportamiento limite conforme el tamaño del problema que puede ser resuelto por un algoritmo. 20. ¿Qué es lo que mide la complejidad computacional? Es la rama de la teoría de la computación que estudia de manera teórica los recursos durante el computo de un algoritmo para resolver un problema. 21. Mencione los factores que influyen en la complejidad. Tamaño del problema, La naturaleza del tamaño de entrada de los datos, Hardware. 22. El análisis de le eficiencia temporal de los algoritmos consta de dos fases. Empírico o a priori, Teórico o Postepriori 23. Definición de Emperico o a priori. Proporciona una medida teórica, que consiste en obtener una función que acote (por arriba o por abajo) el tiempo de ejecución del algoritmo para unos valores de entrada dados. 24. Definición de Teórico o postepriori. Ofrece una medida real, cosiste en medir el tiempo de ejecución del algoritmo para unos valores de entrada dados y en un ordenador concreto. 25. ¿Qué propiedades tiene la O? Peor de los casos, Mejor caso, Caso promedio, Análisis probabilístico, Análisis amortizado 26. Mencione las medidas de las Ordenes de Complejidad según su eficiencia. O(1) Orden Constante: Cuando las instrucciones se ejecutan una sola vez O(log n) Orden Logarítmico: Esta suele aparecer en determinados algoritmos con iteración o recursión no estructural, ejemplo la búsqueda binaria O(n) Orden Lineal: Es una complejidad buena y muy usual. Aparece en la evaluación de bucles simples siempre que la complejidad de las instrucciones interiores sean constantes. O(n log n) Orden Cuasi-lineal: Se encuentra en algoritmos de tipo divide y vencerás como por ejemplo el método de ordenación quicksort y se considera una buena complejidad. Si n se duplica, el tiempo de ejecución es ligeramente el doble. O(n²) Orden Cuadrático: Aparece en bucles o ciclos doblemente anidados. Si no se duplica el tiempo de ejecución, aumenta 4 veces. O(n³) Orden Cúbica: Suele darse en bucles triple animación. Si n se duplica, el tiempo de ejecución se multiplica por 8. Para un valor grande de n empieza a crecer dramáticamente. O(na)
Orden Polinómico (A>3): Si a crece, la complejidad del programa es bastante mala
O(2n)
Orden Exponencial: No suelen ser muy útiles en la practica por el elevadísimo tiempo de ejecución. Se dan en subprogramas recursivos que contenga 2 o mas llamadas internas.
O(n!)
Orden Factorial
27. ¿Qué son los algoritmos polinomiales? Son en general factibles o aplicables, los problemas basados en estos algoritmos son solucionables. 28. ¿Qué son los algoritmos exponenciales? En general no son factibles salvo un tamaño de entrada n exageradamente pequeño, pero generalmente pertenecen a un universo de problemas de los cuales el computo se hace imposible. 29. Mencione las Reglas de la Notación Asintótica. Regla de la Suma y Regla del Producto. 30. De que depende la eficiencia de un algoritmo. Depende del tipo de problema 31. Como se puede analizar un problema. Para analizar un problema debe de ser asintótico si y solo si cuando los datos de n sean muy grandes. 32. Como hacemos un análisis asintótico. Terminar el tiempo de ejecución en notación O 33. ¿Qué se necesita para realizar un análisis asintótico? 1) Buscar el número de operaciones primitivas ejecutadas en el peor de los casos como una función del tamaño de la entrada. 2) Expresar esta función en la notación O, ejemplo: Si f(n) es de grado “d” entonces O(n con grado d). 3) El grado de un polinomio. 4) Condiciones Simples. 5) Condicionales simples. 6) Ciclos fijos 34. Mencione las reglas para expresar una función en notación O. 1. Se restringe los grados menores, 2. Se prescinde de las constantes.