Você está na página 1de 12

ORDENACION POR EL METODO DE LA SACUDIDA

(SHAKER SORT)

Primera pasada
Primera etapa: De derecha a izquierda :
Se trasladan los elementos mas pequeos hacia la parte izquierda del arreglo, almacenando en una variable la posicin del ltimo elemento intercambiado

A: 15 67 08 16 44 27 12 35

PRIMERA PASADA
Primera etapa (de derecha a izquierda):
A[7] A[6] A[5] A[4] A[3] A[2] A[1] > > > > > > > A[8] (12>35) A[7] (27>12) A[6] (44>12) A[5] (16>12) A[4] (08>12) A[3] (67>08) A[2] (15>08) no hay intercambio si hay intercambio si hay intercambio si hay intercambio no hay intercambio si hay intercambio si hay intercambio

La ultima posicin del intercambio de derecha a izquierda es 2. Luego de la primera etapa de la primera pasada, el arreglo queda de la siguiente forma:

A: 08 15 67 12 16 44 27 35

Segunda etapa:

De izquierda a derecha: Se trasladan los elementos ms grandes hacia la parte derecha del arreglo, almacenando en otra variable la posicin del ltimo elemento intercambiado.

Segunda etapa (de izquierda a derecha):


A[2] > A[3] (15>67) A[3] > A[4] (67>12) A[4] > A[5] (67>16) A[5] > A[6] (67>44) A[6] > A[7] (67>27) A[7] > A[8] (67>35) no hay intercambio si hay intercambio si hay intercambio si hay intercambio si hay intercambio si hay intercambio

A: 08 15 67 12 16 44 27 35

ltima posicin de intercambio de izquierda a derecha:8.


Luego de la segunda etapa de la primera pasada, el arreglo queda de la siguiente forma:

A: 08 15 12 16 44 27 35 67

A: 08 15 12 16 44 27 35 67 SEGUNDA PASADA
Primera etapa (de derecha a izquierda):
A[6] A[5] A[4] A[3] A[2] > > > > > A[7] (27>35) A[6] (44>27) A[5] (16>27) A[4] (12>16) A[3] (15>12) no hay intercambio si hay intercambio no hay intercambio no hay intercambio si hay intercambio

ltima posicin de intercambio de derecha a izquierda:3.

A: 08 12 15 16 27 44 35 67

A: 08 12 15 16 27 44 35 67
Segunda etapa (de izquierda a derecha):
A[3] A[4] A[5] A[6] > > > > A[4] (15>16) no hay intercambio A[5] (16>27) no hay intercambio A[6] (27>44) no hay intercambio A[7] (44>35) si hay intercambio ltima posicin de intercambio de izquierda a derecha:7.

A: 08 12 15 16 27 35 44 67

ALGORITMO DE ORDENACION POR EL METODO DE LA SACUDIDA

SACUDIDA DE (A,N)

El algoritmo ordena los elementos del arreglo utilizando el mtodo de la sacudida. A es un arreglo de N elementos

I, IZQ, DER, K Y AUX son variables de tipo entero.

1. Hacer IZQ 2, DER N y K N 2.Repetir mientras DER IZQ 2.1 Repetir con I desde DER hasta IZQ {ciclo descendente} 2.1.1 Si A [I-1] > A [I] entonces

Hacer AUX A [I-1], A [I-1] A [I], A [I] AUX y K I 2.1.2 {Fin del condicional del paso 2.1.1 } 2.2 {Fin del ciclo del paso 2.1} Hacer IZQ K + 1 2.3Repetir con I desde IZQ hasta DER {ciclo ascendente} 2.3.1 Si A [I-1] > A [1] entonces Hacer AUX A [I-1], A [I-1] A [I], A [I] AUX y K I 2.3.2 {Fin del condicional del paso 2.3.1} Hacer DER k 1 3. {Fin del ciclo 2} 1 2 3 4 5
Ejemplo suponiendo A={
20 10 7 1 30

} N=5

Public void sacudida(int []A, int N){ int izq,der,k,aux; izq=1; der=N-1; k=N-1; while(der>=izq){ for(int i=der; i>=izq; i--){ if(A[i-1]> A[i]){ aux= A[i+1]; A[i+1]= A[i]; A[i]= aux; k=i; } } izq= k+1;

for(int i=izq; i<=der; i++){ if(A[i-1]> A[i]){ aux= A[i+1]; A[i+1]= A[i]; A[i]= aux; k=i; } } der= k-1; 0
1 2 3 4

A= 20 3

Anlisis de Eficiencia del mtodo de la Sacudida o Shaker Sort


El anlisis del mtodo de la Sacudida es muy complejo. Es necesario tener en cuenta tres factores que afectan directamente al tiempo de ejecucin del algoritmo: a) Las comparaciones entre x[i-1] y x[i] que podemos llamar claves. b) Los intercambios entre las claves. c) Las pasadas que se realizan. Se ejemplifica a continuacin.
Rastreo
i=4 i=3 i=2 i=1 i=1 i=2 i=3 i=4 i=3 i=2 i=3

x[0]
x[1] x[2] x[3] x[4]

20
3 8 4 2

20
3 8 2 4

20
3 2 8 4

20
2 3 8 4

2
20 3 8 4 20 3 8 4 3 20 8 4 3 8 20 4 3 8 4 20 3 8 4 3 4 8 4 8

Los estudios que se han realizado sobre el mtodo de la Sacudida demuestran que en l slo pueden reducirse las dobles comparaciones entre claves, pero debe recordarse que la operacin de intercambio es una tarea ms complicada y costosa que la de comparacin. Por lo tanto, es posible afirmar que las hbiles mejoras realizadas sobre el mtodo de burbuja (intercambio directo) slo producen resultados apreciables si el arreglo est parcialmente ordenado (lo cual resulta difcil saber de antemano); pero si el arreglo est desordenado el mtodo se comporta, incluso, peor que otros mtodos directos como el de Insercin y el de Seleccin.

Você também pode gostar