09.05.2013 Views

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

404 Capítulo 18. Complejidad algorítmica<br />

Entre estas medidas destaca la notación O mayúscula, 3 la notación Ω y la<br />

notación Θ.<br />

18.2.2 Notación O mayúscula (una cota superior)<br />

Definición: Sean f, g : Z + −→ IR + . Se dice que f ∈ O(g) o que f es del<br />

ord<strong>en</strong> de g si exist<strong>en</strong> constantes n0 ∈ Z + y λ ∈ IR + tales que<br />

f(n) ≤ λg(n) para todo n ≥ n0<br />

Con la notación 4 f ∈ O(g) se expresa que la función f no crece más deprisa<br />

que alguna función proporcional a g. Esto es, se acota superiorm<strong>en</strong>te el<br />

comportami<strong>en</strong>to asintótico de una función salvo constantes de proporcionalidad.<br />

Veamos algunos ejemplos:<br />

• Para el algoritmo de búsqueda secu<strong>en</strong>cial ord<strong>en</strong>ada,<br />

Tmáx(n) = k1n + k2 ∈ O(n)<br />

(lo que se ve tomando cualquier λ > k1 y n0 > k2<br />

λ−k1 ).<br />

Para este mismo algoritmo se ti<strong>en</strong>e además que Tmed(n) = c1n+c2 ∈ O(n),<br />

y para el sumatorio recursivo se cumple que S(n) = n + 1 ∈ O(n).<br />

• Todas las funciones de tiempo constante son O(1):<br />

f(n) = k ∈ O(1)<br />

lo que se ve tomando λ = k y cualquier n0 ∈ Z + . En este caso están<br />

Tmín(n) = k para la búsqueda secu<strong>en</strong>cial ord<strong>en</strong>ada, y S(n) = 3 para el<br />

sumatorio iterativo.<br />

• 15n 2 ∈ O(n 2 )<br />

Como esta notación expresa una cota superior, siempre es posible apuntar<br />

alto a la hora de establecerla. Por ejemplo, se puede decir que los algoritmos<br />

estudiados hasta ahora son O(n!). Naturalm<strong>en</strong>te, esta imprecisión es perfectam<strong>en</strong>te<br />

inútil, por lo que se debe procurar que la función g sea lo más “próxima”<br />

posible a f; es decir, se debe buscar una cota superior lo m<strong>en</strong>or posible. Así, por<br />

ejemplo, aunque (5n + 3) ∈ O(n 2 ), es más preciso decir que (5n + 3) ∈ O(n).<br />

Para formalizar esta necesidad de precisión, se usan otras medidas del comportami<strong>en</strong>to<br />

asintótico.<br />

3Debido a que la expresión inglesa que se utiliza para esta notación es Big-Oh, también se<br />

conoce como notación O grande.<br />

4En lo sucesivo, emplearemos las dos notaciones f ∈ O(g) y f(n) ∈ O(g(n)) indistintam<strong>en</strong>te,<br />

según conv<strong>en</strong>ga.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!