8
Ordenamiento por el método de la sacudida (shaker sort)

Ordenamiento Por El Método de La Sacudida (

Embed Size (px)

Citation preview

Presentacin de PowerPoint

Ordenamiento por el mtodo de la sacudida (shaker sort)Mtodo de la sacudida.Es una optimizacin del mtodo de la burbuja.Idea Bsica: mezclar las dos formas en que se puede realizar el mtodo de la burbuja.En cada pasada tiene dos etapas: burbuja menor y burbuja mayor.Las sucesivas pasadas trabajan con los elementos del arreglo comprendidos entre las posiciones almacenadas en variables auxiliares.Termina cuando en una etapa no se producen intercambios, o cuando el contenido del extremo izquierdo es mayor que el del derecho.Algoritmo del mtodo de la sacudida void shaker_sort(int x[], int n);

{ int i , izq, der, k , aux; izq = 1; der = n-1; while(der >= izq) { for(i = der;i >= izq; i--) { if(x[i-1] > x[i]) { aux = x[i-1]; x[i-1] = x[1]; x[i] = aux; k = i; } }izq=k+1; for(i=izq;ix[i]) { aux=x[i-1]; x[i-1]=x[i]; x[i]=aux; k=i; } } der=k-1;

} }Sea el arreglo A:Primera pasada: primera etapa(derecha a izquierda) A[5] > A[6] (10 > 47) No hay intercambio. A[4] > A[5] (12 > 10) Si hay intercambio. A[3] > A[4] (38 > 10) Si hay intercambio. A[2] > A[3] (95 > 10) Si hay intercambio. A[1] > A[2] (15 > 10) Si hay intercambio. A[0] > A[1] (27 > 10) Si hay intercambio. 2714953812104727149538121047Luego de la primera etapa el arreglo A queda como :Segunda etapa( de izquierda a derecha) A[1] > A[2] (27 > 14) Si hay intercambio. A[2] > A[3] (27 > 95) No hay intercambio. A[3] > A[4] (95 > 38) Si hay intercambio. A[4] > A[5] (95 > 12) Si hay intercambio. A[5] > A[6] (95 > 47) Si hay intercambio.

1027149538124710271495381247Luego de la segunda etapa de la primera pasa el arreglo A queda como:Segunda Pasada:Primera etapa(de derecha a izquierda)A[4] > A[5] (12 > 47) No hay intercambio.A[3] > A[4] (38 > 12) Si hay intercambio.A[2] > A[3] (27 > 12) Si hay intercambio.A[1] > A[2] (14 > 12) Si hay intercambio.

10142738124795101427381247956Luego de la primera etapa de la segunda pasada, el arreglo A queda como:Segunda etapa(de izquierda a derecha)A[2] > A[3] (14 > 27) No hay intercambio.A[3] > A[4] (27 > 38) No hay intercambio.A[4] > A[5] (38 > 47) No hay intercambio.

1012142738479510121427384795Luego de la segunda etapa de la segunda de la segunda pasada, el arreglo A queda como:10121427384795