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.

310 Capítulo 15. <strong>Algoritmos</strong> de búsqueda y ord<strong>en</strong>ación<br />

4 2 3 9 5 8<br />

2 4 3 9 5 8<br />

2 3 4 9 5 8<br />

2 3 4 9 5 8<br />

2 3 4 5 9 8<br />

2 3 4 5 8 9<br />

1 2 3 4 5 8<br />

Figura 15.1.<br />

procedure InsercionDirecta(var v: tVector);<br />

{Efecto: se ord<strong>en</strong>a v asc<strong>en</strong>d<strong>en</strong>tem<strong>en</strong>te}<br />

var<br />

i, j: tIntervalo;<br />

aux: tElem;<br />

begin<br />

for i:= 2 to N do begin<br />

{Inv.: ∀ j, 1 ≤ j < i, ⇒ v[j] ≤ v[j+1]}<br />

aux:= v[i];<br />

{se dan los valores iniciales}<br />

j:= i - 1;<br />

while (j >= 1) and (v[j] > aux) do begin<br />

v[j+1]:= v[j];<br />

{Desplazami<strong>en</strong>to de los valores mayores que v[i]}<br />

j:= j-1<br />

<strong>en</strong>d; {while}<br />

v[j+1]:= aux<br />

<strong>en</strong>d {for}<br />

<strong>en</strong>d; {InsercionDirecta}<br />

15.2.3 Intercambio directo<br />

El algoritmo por intercambio directo recorre el vector buscando el m<strong>en</strong>or<br />

elem<strong>en</strong>to desde la última posición hasta la actual y lo sitúa <strong>en</strong> dicha posición.<br />

Para ello, se intercambian valores vecinos siempre que estén <strong>en</strong> ord<strong>en</strong> decreci<strong>en</strong>te.<br />

Así se baja, mediante sucesivos intercambios, el valor m<strong>en</strong>or hasta la posición<br />

deseada. Más concretam<strong>en</strong>te, el algoritmo consiste <strong>en</strong>:<br />

1. Situar el elem<strong>en</strong>to m<strong>en</strong>or <strong>en</strong> la primera posición. Para ello se compara<br />

el último elem<strong>en</strong>to con el p<strong>en</strong>último, intercambiando sus valores si están<br />

1<br />

1<br />

1<br />

1<br />

1<br />

1<br />

9

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

Saved successfully!

Ooh no, something went wrong!