o
Varía en función del compilador que seleccionemos.
o
Puede variar en función de nuestra habilidad como programadores.
IDEA:Ignorar las constantes dependientes del contexto.SOLUCIÓN:Fijarse en el crecimiento de T(n) cuando n ->∞
NOTACION “O”
O(g(n)) = { f(n) | Ec,n0 constantes positivas tales que f (n) = c g(n) A n = n0 }En la práctica, se ignoran las constantes y los términos de menor peso:3n3 + 90n2 – 5n + 6046 = O (n3)Eficiencia asintóticaCuando n es lo suficientemente grande…Un algoritmo O (1), es más eficiente que un algoritmo O (log n),Un algoritmo O (log n), es más eficiente que un algoritmo O(n),Un algoritmo O(n), es más eficiente que un algoritmo O(n log n),Un algoritmo O(n log n), es mas eficiente que un algoritmo O (n2),Un algoritmo O (n2), es más eficiente que un algoritmo O(n3),Un algoritmo O (n3), es más eficiente que un algoritmo O (2n).NOTA:En ocasiones, un algoritmo más ineficiente puede resultar másadecuado para resolver unproblema real ya que, en a práctica, hay que tener en cuenta otros aspectos además de laeficiencia.
Propiedades de la notación O
c O(f(n)) = O(f(n))O (f(n)+g(n)) = max {O (f(n)), O (g(n))}O (f(n)+g(n)) = O (f(n)+g(n))O (f(n)) O (g(n)) = O (f(n) g(n))O(O (f(n))) = O (f(n))1.3 Complejidad
El análisis de complejidad se basa en la comparación del tipo de ejecución de los algoritmosdesarrollados para resolver un problema.A partir del análisis de complejidad se han definido varias clases de problemas: los problemas quese resuelven en tiempo polinomial por una máquina determinista forman la clase P y los problemasque se resuelven en tiempo polinomial por una máquina no determinista forman la clase NP.En computación, al hablar de complejidad, no se está refiriendo a la dificultad que se tendría paradiseñar un programa, o a lo rebuscado de un algoritmo. La teoría de complejidad tiene que ver condos medidas de desempeño: tiempo y espacio.La complejidad computacional de un problema es una medida de los recursos computacionales(generalmente el tiempo) requeridos para resolver el problema.La complejidad temporal tiene que ver con el tiempo que tarda un programa para ejecutarse. Lacomplejidad espacial estudia la cantidad de espacio de almacenamiento que es necesario para unaoperación.