Está en la página 1de 4

Métodos de ordenación Sacudida y

Selección directa

LI Juan Esquivel Méndez


Estructura de Datos 2010
Método del Shaker Sort (Sacudida)

 Este método es una optimización del método de intercambio directo (burbuja). Y


consiste en mezclar las dos formas (burbuja menor y burbuja mayor) en que se
puede realizar el método de la burbuja.
 El algoritmo tiene 2 etapas por cada fase:
- De derecha a izquierda: se trasladan los elementos más pequeños hacia la
parte izquierda del arreglo, almacenando en una variable la posición del último
elemento intercambiado.
- De izquierda a derecha: se trasladan los elementos más grandes hacia la parte
derecha del arreglo, almacenando en otra variable la posición del último
elemento intercambiado.
 Cada fase trabaja con los componentes del arreglo comprendidos entre las
posiciones almacenadas en las variables.
 El algoritmo termina cuando en una fase no se producen intercambios o bien,
cuando el contenido de la variable que almacena el extremo izquierdo del arreglo
es mayor que el contenido de la variable que almacena el extremo derecho.
Método del Shaker Sort (Explicación)

 Suponga que se quiere ordenar en forma ascendente los siguientes


elementos: 23, 3, 12, 29, 2, 1, 9, 6
Primera
Segundaetapa
etapa(de
(dederecha
Fase
izquierda
1 Terminada
a izquierda
a derecha– –burbuja
burbujamenor)
mayor)
0 1 2 3 4 5 6 7

Fase 1: 23 3 12 29 2 1 9 6

Primera
Segundaetapa
etapa(de
(dederecha a izquierda
izquierda
Fase a derecha––burbuja
2 Terminada burbujamenor)
mayor)
0 1 2 3 4 5 6 7
Última posición de intercambio de derecha a izquierda: 1 Última posición de intercambio de izquierda a derecha: 6
Fase 2: 1 3 12 23 2 6 9 29

Primera
Segundaetapa
etapa(de
(dederecha
Fase
izquierda
3 Terminada
a izquierda
a derecha– –burbuja
burbujamenor)
mayor)
0 1 2 3 4 5 6 7
Última posición de intercambio de derecha a izquierda: 2 Última posición de intercambio de izquierda a derecha: 5
Fase 3: 1 2 3 12 6 9 23 29

En la primera etapa de esta fase, como no ocurren intercambios el algoritmo finaliza


0 1 2 3 4 5 6 7
Última posición de intercambio de derecha a izquierda: 3 Última posición de intercambio de izquierda a derecha: 4
Fase 4: 1 2 3 6 9 12 23 29
Algoritmo para Shaker Sort

IZQ = 0, DER = N-1, K = DER


HAGA MIENTRAS (DER > IZQ)
HAGA DESDE J=DER HASTA IZQ+1 STEP -1
SI(A[J-1] > A[J]) ENTONCES
AUX = A[J-1], A[J-1] = A[J], A[J] = AUX, K=J
FIN SI
FIN HAGA DESDE
IZQ = K
HAGA DESDE J=IZQ HASTA DER-1
SI(A[J] > A[J+1]) ENTONCES
AUX = A[J+1], A[J+1] = A[J], A[J] = AUX, K=J
FIN SI
FIN HAGA DESDE
DER = K
FIN HAGA MIENTRAS

También podría gustarte