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.

18.1. Conceptos básicos 399<br />

Como conclusión se puede afirmar que <strong>en</strong> algunos algoritmos, la complejidad<br />

no dep<strong>en</strong>de únicam<strong>en</strong>te del tamaño del parámetro, sino que intervi<strong>en</strong><strong>en</strong> otros<br />

factores que hac<strong>en</strong> que la complejidad varíe de un caso a otro. Para distinguir<br />

esas situaciones se habla de coste <strong>en</strong> el mejor caso, <strong>en</strong> el peor caso y <strong>en</strong> el caso<br />

medio:<br />

• Tmáx(n), expresa la complejidad <strong>en</strong> el peor caso, esto es, el tiempo máximo<br />

que un algoritmo puede necesitar para una <strong>en</strong>trada de tamaño n.<br />

• Tmín(n), expresa la complejidad <strong>en</strong> el mejor caso, esto es, el tiempo mínimo<br />

que un algoritmo necesita para una <strong>en</strong>trada de tamaño n.<br />

• Tmed(n), expresa la complejidad <strong>en</strong> el caso medio, esto es, el tiempo medio<br />

que un algoritmo necesita para una <strong>en</strong>trada de tamaño n. G<strong>en</strong>eralm<strong>en</strong>te,<br />

se suele suponer que todas las secu<strong>en</strong>cias de <strong>en</strong>tradas son equiprobables.<br />

Por ejemplo, <strong>en</strong> los algoritmos de búsqueda, se considerará que elem puede<br />

estar <strong>en</strong> cualquier posición del vector con idéntica probabilidad, es decir,<br />

con probabilidad 1<br />

n .<br />

G<strong>en</strong>eralm<strong>en</strong>te, la complejidad <strong>en</strong> el mejor caso es poco repres<strong>en</strong>tativa y la<br />

complejidad <strong>en</strong> el caso medio es difícil de calcular por lo que, <strong>en</strong> la práctica, se<br />

suele trabajar con el tiempo para el peor caso por ser una medida significativa<br />

y de cálculo factible <strong>en</strong> g<strong>en</strong>eral. No obstante, como ejemplo, se calculan a continuación<br />

las tres medidas para el algoritmo de búsqueda secu<strong>en</strong>cial ord<strong>en</strong>ada.<br />

Para fijar ideas, vamos a hallar el coste <strong>en</strong> términos de los tiempos empleados<br />

para las operaciones de sumar (s), realizar una comparación (c) y realizar una<br />

asignación (a) por un computador cualquiera. El coste <strong>en</strong> pasos es más s<strong>en</strong>cillo,<br />

ya que basta con dar el valor unidad a cada una de esas operaciones.<br />

Las tres medidas de coste m<strong>en</strong>cionadas se calculan como sigue:<br />

• Tmín: Este tiempo mínimo se alcanzará cuando v[1] ≥ elem. En tal<br />

caso se necesita una asignación para iniciar la variable i, una suma y una<br />

asignación para increm<strong>en</strong>tar el valor de i, dos comparaciones <strong>en</strong> el bucle<br />

repeat, otro test más para v[i] = elem y, finalm<strong>en</strong>te, una asignación a<br />

la función BúsquedaSecOrd. Por lo tanto:<br />

Tmín(n) = 3a + 3t + s<br />

que es constante, lo que abreviamos así:<br />

Tmín(n) = k

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

Saved successfully!

Ooh no, something went wrong!