172 Ordenamiento, Búsqueda e Intercalación
inicio
Leer (n)
Repetir Para i ← 1, n
leer(V[i])
fin para
! Comienza el ordenamiento
ordenado ← falso
i ← n
Repetir Mientras (i>=2 y no(ordenado)) ! cada pasada
ordenado ← verdadero ! si no cambia es porque está ordenado
Repetir Para j=1, i-1
Si (V[j] > V[j+1]) entonces
aux ← V[j]
V[j] ← V[j+1] ! intercambiar
V[j+1] ← aux
ordenado ← falso ! al haber intercambio no está ordenado
fin_si
fin_para
i ← i-1
fin mientras
Repetir Para i ← 1, n
Escribir (V[i])
fin para
fin
Observar que las pasadas, cuya cantidad no se conoce a priori, se controlan mediante una
estructura Repetir mientras, a diferencia del caso original, donde al conocerse la cantidad, se
utiliza una estructura Repetir Para.
Ordenamiento de las filas de una matriz de acuerdo a los valores en una columna
Consideremos una matriz o arreglo bidimensional de n filas y m columnas, p. ej.
7 8 -4
510
-2 6 -1
332
donde queremos reordenar sus filas, de tal manera que los valores de la primera columna
queden en orden creciente. El resultado es
-2 6 -1
332
510
7 8 -4
Observar que esto no es lo mismo que reordenar sólo la primera columna, porque en ese
caso, las demás columnas no se moverían, y quedarían igual que en la matriz original. Entonces,
para resolver el problema aplicando algún método de ordenamiento, la idea es aplicar el método
a la primera columna, pero cada vez que se realiza un intercambio, intercambiar además todos los
elementos de la correspondiente fila. Como ilustración desarrollaremos el algoritmo empleando
el método de selección o búsqueda del mínimo.