está no ordenado

Anuncio
ORDENAMIENTO
SELECCIÓN SIMPLE
Suponiendo que A[1 .. i-1] está ordenado ascendentemente (OA) y que A[i .. n] está no
ordenado (NO) y que además que A[i-1] <= A[j] para todo i .. n, se busca el menor
elemento A[k] en A[i .. n] y se intercambia con A[i].
i
OA
menor ¿?
n
OA
SS(A,n)
Inicio
for i=0 to n-1 do
k=i
for j=i+1 to n do
if (A[j] < A[k])
k=j
endif
min = A[k]
A[k] = A[i]
A[i] = min
Fin
INSERCIÓN DIRECTA
Suponiendo que A[1 .. i-1] está ordenado ascendentemente (OA) y que A[i .. n] está no
ordenado (NO) se busca la posición que le corresponde a A[i] en el lado OA,
desplazando elementos a medida que se avanza.
i
OA
n
OA
ID(A,n)
Inicio
for i=2 to n do
j = i-1
aux = A[i]
While (j>0) and (aux < A[j])
A[j+1] = A[j]
j=j–1
endwhile
A[j+1] = aux
Fin
Profesor Mauro Castillo
BUBBLE SORT
Se recorre el arreglo intercambiando elementos contiguos que estén en mal orden. Así,
lo “elementos pesados se hunden” hacia el fondo del arreglo. Las pasadas se ejecutan
hasta que en alguna no se realicen intercambios.
BS(A,n)
Inicio
Repetir
Aux = A[1]
For i=2 to n do
If (A[i] < A[i-1])
Aux = A[i]
A[i] = A[i-1]
A[i-1] = Aux
Endif
n = n -1
Hasta (Aux = A[1])
Fin
SHELL SORT
Elegir un paso h, ordenar los h subarreglos A[1, i+h, ..]; A[2, 2+h, ..] … repetir usando
un ha más pequeño. Finalizar usando h=1.
SHS(A, n)
Inicio
h=1
Repetir
h = 3*h + 1
Hasta (h > n)
Repetir
H = h DIV 3
For i=h+1 to n do
j=1
Aux = A[i]
While (j>0) and (x < A[j - h])
A[j] = A[j-h]
j=j–h
Endwhile
A[j] = x
Hasta (h=1)
Fin
Profesor Mauro Castillo
Descargar