Diferencia entre revisiones de «Análisis de algoritmos»

Contenido eliminado Contenido añadido
Sin resumen de edición
Deshecha la edición 39167131 de 200.75.48.126 (disc.)
Línea 1:
El '''análisis de algoritmos''' es una parte importante de la Teoría de [[complejidad computacional]] más amplia, que provee estimaciones teóricas para los recursos que necesita cualquier [[algoritmo]] que resuelva un problema computacional dado. Estas estimaciones resultan ser bastante útiles en la búsqueda de algoritmos eficientes.
 
A la MILLONARIOS VA A PERDER hora de realizar un análisis teórico de algoritmos es corriente calcular su complejidad en un '''sentido asintótico''', es decir, para un tamaño de entrada suficientemente grande. La [[cota superior asintótica]], y las notaciones [[cota superior asintótica|omega]] y [[Cota superior asintótica|theta]] se usan con esa finalidad. Por ejemplo, la [[búsqueda binaria]] decimos que se ejecuta en una cantidad de pasos proporcional a un [[logaritmo]], en O(log(n)), coloquialmente "en tiempo logarítmico". Normalmente las estimaciones asintóticas se utilizan porque diferentes [[Implementación|implementaciones]] del mismo algoritmo no tienen porque tener la misma eficiencia. No obstante la eficiencia de dos implementaciones "razonables" cualesquiera de un algoritmo dado están relacionadas por una constante multiplicativa llamada '''constante oculta'''.
 
La medida exacta (no [[asíntota|asintótica]]) de la eficiencia a veces puede ser computada pero para ello suele hacer falta aceptar supuestos acerca de la implementación concreta del algoritmo, llamada [[modelo de computación]]. Un modelo de computación puede definirse en términos de un [[máquina abstracta|ordenador abstracto]], como la [[Máquina de Turing]], y/o postulando que ciertas operaciones se ejecutan en una unidad de tiempo.