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.

15.2. Ord<strong>en</strong>ación de arrays 307<br />

❡❡ <br />

En todos los algoritmos que se van a estudiar a continuación, se supondrá<br />

que la ord<strong>en</strong>ación se llevará a cabo <strong>en</strong> forma creci<strong>en</strong>te. Es obvio que las<br />

modificaciones que se t<strong>en</strong>drían que realizar para ord<strong>en</strong>ar un vector con otra<br />

relación de ord<strong>en</strong> son inmediatas y se dejan para el lector.<br />

15.2.1 Selección directa<br />

Este algoritmo resuelve el problema de la ord<strong>en</strong>ación recorri<strong>en</strong>do el vector<br />

y seleccionando <strong>en</strong> cada recorrido el m<strong>en</strong>or elem<strong>en</strong>to para situarlo <strong>en</strong> su lugar<br />

correspondi<strong>en</strong>te. El esquema básico del algoritmo de selección directa es:<br />

1. Se sitúa <strong>en</strong> v1 el m<strong>en</strong>or valor <strong>en</strong>tre v1, . . . ,vn. Para ello se intercambian<br />

los valores de v1 y vm si<strong>en</strong>do vm = mín<br />

k=1,...,n {vk}.<br />

Por ejemplo, para el vector (4, 5, 7, 1, 9, 8, 2), este primer paso produce<br />

el intercambio repres<strong>en</strong>tado <strong>en</strong> la sigui<strong>en</strong>te figura:<br />

4 5 7 1 9 8 2<br />

_ _<br />

2. Se sitúa <strong>en</strong> v2 el m<strong>en</strong>or valor <strong>en</strong>tre v2, . . . ,vn. Para ello se intercambian<br />

los valores de v2 y vm si<strong>en</strong>do vm = mín<br />

k=2,...,n {vk}.<br />

. . .<br />

En el ejemplo, se produce el intercambio:<br />

1<br />

_<br />

5 7 4 9 8 2_<br />

(j-1). Se sitúa <strong>en</strong>vj−1 el m<strong>en</strong>or valor <strong>en</strong>trevj−1, . . . ,vn. Para ello se intercambian<br />

los valores de vj−1 y vm si<strong>en</strong>do vm = mín<br />

k=j−1,...,n {vk}.<br />

. . .<br />

(n-1). Se sitúa <strong>en</strong> vn−1 el m<strong>en</strong>or valor <strong>en</strong>tre vn−1 y vn. Para ello se intercambian<br />

los valores de vn−1 y vn si es necesario.

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

Saved successfully!

Ooh no, something went wrong!